通过v-if动态设置Element表格列时,出现表格列显示错乱、表头闪动等问题

问题描述:在实际开发, 我们经常会通过v-if控制表格列的显隐,来实现不同条件下展示不同的表格列,这时候就可能会出现表格列显示错乱、以及表头闪动等问题

问题分析:

表格列显示错乱:由于key值不会被及时的更新,在显示或者隐藏列时,部分DOM会被继续复用,不会重新渲染,导致列显示错乱

表头闪动由于列的显示或者隐藏,导致了重排以及重绘,表格发生闪动

问题解决:

表格列显示错乱问题解决:

为表格的el-table-column 添加key值 :key=“Math.random()”


     

表头闪动问题解决: 

在生命周期函数beforeUpdate中调用表格的 doLayout() 方法 (尽量加上可选链,不然可能存在获取不到table实例,造成doLayout为undefined的情况)

beforeUpdate () {
    this.$nextTick(() => {
      this.$refs.table?.doLayout()
    })
}

 通过v-if动态设置Element表格列时,出现表格列显示错乱、表头闪动等问题_第1张图片

 

你可能感兴趣的:(Element,vue.js,elementui,前端)