当前位置: 首页 > article >正文

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不存在这个问题,实现方式很简单,重要的时解决问题的过程


http://www.kler.cn/a/399192.html

相关文章:

  • Linux高阶——1116—SOCKET套接字基础
  • 数据结构大致分类
  • 函数式组件和类组件的区别
  • WPF+MVVM案例实战、自定义控件和特效实现
  • 解析安卓镜像包和提取DTB文件的操作日志
  • Unity6 + Android Studio 开发环境搭建【备忘】
  • 机器学习实战笔记32-33:网格搜索原理、参数详解及代码实操
  • 关于性能测试:数据库的 SQL 性能优化实战
  • STL序列式容器之priority_queue
  • vue使用List.reduce实现统计
  • 前端开发设计模式——责任链模式
  • acwing算法基础03-递归,枚举
  • 【JavaScript】call、apply、bind
  • 数据结构中的抽象数据类型、逻辑结构、存储结构等到底是什么?
  • LeetCode 445.两数相加 II
  • 【不写for循环】玩玩行列
  • nfs服务器--RHCE
  • 论文学习(四) | 基于数据驱动的锂离子电池健康状态估计和剩余使用寿命预测
  • 后台运行docker compose项目,一直失败,提示:Timeout exceeded while awaiting headers?让我来看看~
  • idea 删除本地分支后,弹窗 delete tracked brank