使用 el-table 循环动态列表,窗口会出现抖动的问题

文章讨论了el-table在动态列宽和v-if/v-show条件下,触发动画事件时可能出现的抖动问题。解决方法包括在DOM更新后立即调用doLayout方法以及为有条件显示的列column添加唯一key。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现象描述

页面渲染出表格以及表格中的所有内容,当触发表格中的自定义点击事件或者切换tab页时,表格里面的单元格和内容行就会发生左右或者上下抖动

问题寻源

由于表格中的 el-table 没有采用固定列宽,而是采用动态计算的列宽,并且有 v-if 或 v-show 来控制表格某一列的展示与隐藏,所以切换tab或者触发点击事件时使表格会被重新加载计算,从而出现抖动的现象

解决方法

1.在table所在的dom更新后立刻对el-table进行重新布局(也就是调用el-table的doLayout方法),例如在beforeUpdated生命周期中调用doLayout:

 // 解决打开弹窗 el-table 抖动问题
  beforeUpdate() {
    this.$nextTick(() => {
      this.$refs.multipleTable.doLayout()
    })
  },

 2.在有v-if或者v-show控制的el-table-column中绑定唯一的key值

// 目的的生成一个唯一的key值,随机的
  :key="Math.random()"

这样俩个步骤就能把问题解决啦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值