欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關于Element-ui中el-table出現的表格錯位問題解決

 更新時間:2022年07月22日 12:24:00   作者:卿本無憂  
使用ElementUI的el-table后,偶然發(fā)現出現行列錯位、對不齊問題,下面這篇文章主要給大家介紹了關于Element-ui中el-table出現的表格錯位問題解決的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

前言

在使用element-ui中的el-table時,我們經常會用到fiexd屬性,而使用了fixed屬性之后,就會容易在各種場景出現表格錯位的問題。

查閱element-ui官網,發(fā)現官網提供了doLayout方法來解決這個問題

總結容易出現錯位問題的幾種場景及解決辦法

1、數據更新后出現的錯位問題

1.1 直接在數據賦值后執(zhí)行doLayout方法

this.data = data;
// 在數據更新后執(zhí)行
this.$nextTick(() => {
      // myTable是表格的ref屬性值
      if (this.$refs.myTable && this.$refs.myTable.doLayout) {
        this.$refs.myTable.doLayout();
      }
})

1.2在生命周期updated里執(zhí)行doLayout方法

updated() {
    // myTable是表格的ref屬性值
    if (this.$refs.myTable && this.$refs.myTable.doLayout) {
      this.$refs.myTable.doLayout();
    }
}

2、瀏覽器窗口大小變化時出現的錯位問題

// 綁定window的onresize事件(注意,onresize事件只能有一個)
window.onresize = () => {
      // myTable是表格的ref屬性值
      if (this.$refs.myTable && this.$refs.myTable.doLayout) {
        this.$refs.myTable.doLayout();
      }
}

3、當有多個Tab標簽時,切換標簽出現的錯位問題

這時可以有多種解決方式

3.1 在組件守衛(wèi)beforeRouteEnter里執(zhí)行doLayout方法

beforeRouteEnter(to, from, next) {
    // myTable是表格的ref屬性值
    if (this.$refs.myTable && this.$refs.myTable.doLayout) {
      this.$refs.myTable.doLayout();
    }
    //不能忘記這個哦
    next();
 }

3.2 如果使用了keep-alive,可以在activated里執(zhí)行doLayout方法

activated() {
    // myTable是表格的ref屬性值
    if (this.$refs.myTable && this.$refs.myTable.doLayout) {
      this.$refs.myTable.doLayout();
    }
 }

3.3 也可以通過監(jiān)聽路由,在watch里執(zhí)行doLayout方法

watch: {
    $route() {
      this.$nextTick(() => {
        // myTable是表格的ref屬性值
        if (this.$refs.myTable && this.$refs.myTable.doLayout) {
          this.$refs.myTable.doLayout();
        }
      })
    }
 }

如果當項目已經開發(fā)進入尾聲,此時需要修改大量的文件,而我們可能更希望一次性解決這個問題,這個時候可以在App.vue里找到解決的思路

<template>
  <div id="app">
    <router-view ref="appView"></router-view>
  </div>
</template>
<script>
 
export default {
  data() {
  },
  watch: {
    $route() {
      //切換標簽時
      this.handleRefreshTable();
    }
  },
  created() {
    let _this = this;
    //窗口改變時
    window.onresize = function () {
      _this.handleRefreshTable();
    };
  },
  updated() {
    //數據改變時
    this.handleRefreshTable();
  },
  methods: {
    handleRefreshTable() {
      this.$nextTick(() => {
        // 獲取頁面中已注冊過ref的所有的子組件。
        let refList = this.$refs.appView.$refs;
        if (refList) {
          for (let i of Object.keys(refList)) {
            // 根據doLayout方法判斷子組件是不是el-table
            if (refList[i] && refList[i].doLayout) {
              // 執(zhí)行doLayout方法
              refList[i].doLayout();
            }
          }
        }
      })
    }
  }
};
</script>

附:解決element中el-table中表頭和內容錯位的方法

在使用element中table組件的時候,有時候在部分不兼容的瀏覽器中,會出現以下表頭和內容錯位的情況。以下提供了兩種解決方案,親測有效果。

方法一:

在第一個el-table-column中加上:key="Math.random()"

<el-table :data="tableData" border>
    <el-table-column :key="Math.random()" prop="date" label="日期"> </el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
    <el-table-column prop="name" label="姓名"> </el-table-column>
</el-table>

方法二:

在<el-table>上綁定ref='tableRef' ,然后在調取到數據后執(zhí)行以下代碼

this.$nextTick(() => {
   this.$refs.tableRef.doLayout()
})

總結

到此這篇關于Element-ui中el-table出現的表格錯位問題解決的文章就介紹到這了,更多相關Element-ui中el-table表格錯位內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue3 源碼導讀(推薦)

    Vue3 源碼導讀(推薦)

    這篇文章主要介紹了Vue3 源碼導讀(推薦),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • Element圖表初始大小及窗口自適應實現

    Element圖表初始大小及窗口自適應實現

    這篇文章主要介紹了Element圖表初始大小及窗口自適應實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • 在Vue中延遲執(zhí)行某個函數的實現方式

    在Vue中延遲執(zhí)行某個函數的實現方式

    在Vue中延遲執(zhí)行某個函數,你可以使用setTimeout()函數或者Vue提供的生命周期鉤子函數,本文通過一些示例代碼給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • 快速處理vue渲染前的顯示問題

    快速處理vue渲染前的顯示問題

    下面小編就為大家分享一篇快速處理vue渲染前的顯示問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 使用Vue 實現滑動驗證碼功能

    使用Vue 實現滑動驗證碼功能

    本文章主要來介紹一下第一個階段,也就是前端校驗的驗證碼的實現,下面來介紹一下拖動驗證碼的具體實現。這篇文章主要介紹了利用 Vue 實現滑動驗證碼,需要的朋友可以參考下
    2019-06-06
  • Vue中用props給data賦初始值遇到的問題解決

    Vue中用props給data賦初始值遇到的問題解決

    這篇文章主要介紹了Vue中用props給data賦初始值遇到的問題解決,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 解決ant-design-vue中menu菜單無法默認展開的問題

    解決ant-design-vue中menu菜單無法默認展開的問題

    這篇文章主要介紹了解決ant-design-vue中menu菜單無法默認展開的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 詳解Vue-router嵌套路由

    詳解Vue-router嵌套路由

    這篇文章主要為大家介紹了Vue-router的嵌套路由,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11
  • vue多個元素的樣式選擇器問題

    vue多個元素的樣式選擇器問題

    這篇文章主要介紹了vue多個元素的樣式選擇器問題,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • vue實現可改變購物數量的購物車

    vue實現可改變購物數量的購物車

    這篇文章主要為大家詳細介紹了vue實現可改變購物數量的購物車,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評論