VUE+Element UI项目中使用el-table出现的内容块左右抖动问题解决方法

这篇具有很好参考价值的文章主要介绍了VUE+Element UI项目中使用el-table出现的内容块左右抖动问题解决方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

el-table中出现的抖动问题

为了提高项目中组件的复用性,一般我们都会使用 v-if 或 v-show 加在 el-table-column 上来实现不同场景下页面内容的展示

现象描述

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

问题寻源

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

解决方法
  1. 在table所在的dom更新后立刻对el-table进行重新布局(也就是调用el-table的doLayout方法),例如在beforeUpdated生命周期中调用doLayout:
beforeUpdate() {
  this.$nextTick(() => {
    this.$refs.table.doLayout()
  })
}
  1. 在有v-if或者v-show控制的el-table-column中绑定唯一的key值
<el-table ref="table" :data="list">
	<el-table-column
		show-overflow-tooltip
		prop="account"
		:label="$global.user_center.account"
		align="center"
		min-width="130"
		v-if="showAccount"
		:key="1">
		
			<template slot-scope="scope">
					{{ scope.row.account || '--' }}
			</template>
	</el-table-column>
	<el-table-column
		prop="name"
		:label="$global.user_center.name"
		v-if="showName"
		:key="2">
		
			<template slot-scope="scope">
					{{ scope.row.name|| '--' }}
			</template>
	</el-table-column>
</el-table>

!注意:之前有试过绑定的key为随机生成数,但是抖动问题在我这里并没有得到解决,随后将key置为固定的数值就彻底解决了这个抖动的问题,希望可以帮助到大家。文章来源地址https://www.toymoban.com/news/detail-740821.html

到了这里,关于VUE+Element UI项目中使用el-table出现的内容块左右抖动问题解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • element ui 中在el-table内,当内容超过多少行时,显示el-tooltip

    最近来了一个需求,在一个el-table里边的某一列渲染一个 ‘介绍’ 的内容,由于内容过多,全部展示显示的不是很美观,所以就给定了个需求让超出两行后显示省略号,并在鼠标移上去之后显示全部内容。 我首先想到的就是使用el-tooltip来实现,但是在使用过程中试了很多方

    2024年02月03日
    浏览(47)
  • element ui中el-table的合并相同列内容的解决方法,简单实用

    element ui中el-table的合并相同列内容的解决方法,简单实用 废话不说,直接上代码,vue页面中的几个部分如下: 注意几点: 1、el-table中 写上: :span-method=“objectSpanMethod” 2、两个方法不用改动 3、想合并哪列,在data中columnArr数组里填上列名。 4、如果有bug,自己去调整吧 完事

    2024年02月11日
    浏览(51)
  • Vue Element UI 中 el-table 树形数据 tree-props 多层级使用避坑

    实现效果: element官网提示设置tree-props为{children: ‘children’,hasChildren: ‘hasChildren’},data数据需要设置children和hasChildren属性,row-key也绑定了数据的唯一值变量id,但是 树形结构的第三级就是出不来 可以看到只有第二级,第三级并没有,于是查看了 数据格式 ,和官方要求的

    2024年02月02日
    浏览(84)
  • 【vue】element-ui、el-table使用V-for循环动态添加表头和数据

    参考链接 https://blog.csdn.net/xz1589155358/article/details/126597271

    2024年02月11日
    浏览(70)
  • vue中使用element ui的el-table在el-table-column下使用slot插槽v-if条件渲染没生效或者混乱

    vue 引入element ui中的el-table组件时,在el-table-column下使用作用域插槽,通过v-if条件来动态显示某些元素,发现有的条目渲染没生效或者混乱。如: 原因:vue虚拟dom机制,会尽量复用已存在相同节点元素而不会重新渲染,导致使用v-if没有达到预期效果 解决方法:使用div元素将

    2024年02月11日
    浏览(47)
  • vue使用Element UI时,el-table表格整行操作单选禁选并隐藏全选框

    需求:表格复选修改为单选,只可选择一个;不满足条件的不可勾选;可进行整行操作 注意使用的方法. 需求由复选改为单选后, 左上角全选框要进行隐藏 ,复选框也变成单选框,这里是通过css样式进行调整的 勾选复选框的select和整行操作的row-click可以共用同一个方法,

    2024年02月13日
    浏览(47)
  • vue(element ui )el-table树形表格展示及数据对齐

    注意点: el-table配置里 row-key 必须是唯一性 :tree-props=“{ children: ‘relatedPartyChild’ , hasChildren: ‘hasChildren’ }” children配置为后端返回的节点字段即可

    2024年02月16日
    浏览(50)
  • element-ui 表格el-table的列内容溢出省略显示,鼠标移上显示全部和定制样式

       1、在对应列加上省略显示show-overflow-tooltip属性,如果加上这属性,鼠标移上还是没效果,要考滤是不是层级的原因,被其他挡住了。    效果如下图: 2、定制样式: 默认提示框主题色是黑色,如果想改成浅色和改变提示框的宽度,则需要加复盖样式: 最后效果:

    2024年02月13日
    浏览(43)
  • Vue+Element Ui实现el-table自定义表头下拉选择表头筛选

    用vue+element ui开发管理系统时,使用el-table做表格,当表格列过多的时候,想要做成可选表头的,实现表格列的筛选显示,效果如下: 代码文件结构: 废话不多说,直接上代码: 第一步:新建名为 TableHeaderRender.vue 的文件 template   el-popover     placement=\\\"bottom\\\"     width=\\\"2

    2024年02月02日
    浏览(65)
  • vue element-ui表格(el-table)数据导出execl文件

    功能实现:element UI 的el-table数据导出为execl文件 使用到插件:xlsx、file-saver exportExecl.js 代码如下: 页面代码如下:

    2024年02月14日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包