欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 2024-11-15 Element-ui的tab切换中table自适应宽度无法立即100%的问题

2024-11-15 Element-ui的tab切换中table自适应宽度无法立即100%的问题

2025/2/25 0:05:08 来源:https://blog.csdn.net/weixin_48364327/article/details/143806226  浏览:    关键词:2024-11-15 Element-ui的tab切换中table自适应宽度无法立即100%的问题

前言

今天在写一个统计图表的时候,将所有的table表格和echarts图表放到一个页面中,这样会在纵向上出现滚动条,上下滑动对用户体验不好,于是改成tab切换的形式

遇到的问题

正如标题所述,elementui在tab中使用table时,会出现bug,宽度的变化时从窄到宽,有一个过渡的过程,而不是直接和父元素的百分百宽度一致

我的想法
  • 从左到右渲染,显得很别扭,如果是执行一种以从中间到两边扩展的动画也能提升体验,于是我找了一些资料,需要自定义实现,很繁琐,放弃这种想法;还是解决该问题
    主要问题形如以下代码
<el-tabs type="border-card" class="demo-tabs"><el-tab-pane label="Config"><my-table1/></el-tab-pane><el-tab-pane label="Role"><my-table2/></el-tab-pane><el-tab-pane label="Task"><my-table3/></el-tab-pane></el-tabs>

我在网上搜,看有没有遇到过同样问题的小伙伴,还真有,我从TA的问题下寻找答案,找到了参考答案
在这里插入图片描述
该图片来源,参考链接 https://segmentfault.com/q/1010000044993023
看了参考答案,首先我想到,是不是执行机制的导致的问题,如果是执行机制,就要解决代码的执行顺序问题,用v-show,在点击tab的时候让tab延迟出现

handleClick(tab){this.$nextTick = (()=>{setTimeout(()=>{this.isTable = true},200)})
}

并没有解决,换v-if,用v-if 能暂时规避这个问题,但是会影响后续操作,我在获取到数据后要默认以某一列数的倒序排列,v-if的话没有table节点该功能无法实现,放弃这种解决办法。

最终解决

查看文档使用element U i的table的doLayout方法,对table进行重新布局在这里插入图片描述

this.$refs.myTable.doLayout()

测试了element Plus不存在这个问题,实现方式很简单,重要的时解决问题的过程

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词