Vue中el-table条件渲染防止样式乱掉(解决方法)

 更新时间:2023年11月10日 15:12:26   作者:new code Boy  
这篇文章主要介绍了Vue中el-table条件渲染防止样式乱掉问题,通过使用:key="Math.random()" 可解决样式错乱问题,此key属性是vue自带的特殊属性,主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes,依次来提升页面渲染性能,感兴趣的朋友一起看看吧

Vue中el-table条件渲染防止样式乱掉

<el-table ref="table" :header-cell-style="{background: 'rgba(222, 222, 222, 1)', color: '#909399'}" v-loading="" stripe border :data="" element-loading-text="加载中..." :row-style="{height: '40px'}" :cell-style="{padding: '0px}">
  <el-table-column show-overflow-tooltip prop="" align="center" lable="" min-width="100" v- 
   if="" :key="Math.random()">
  </el-table-column>
</el-table>

:key="Math.random()" 可解决样式错乱问题

此key属性是vue自带的特殊属性,主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes,依次来提升页面渲染性能。

如果不更新此key的话,显示/隐藏列时会导致部分DOM不会重新渲染,因此table变化的时候内容会出现错乱。

el-table列表渲染时闪烁或者布局混乱的问题

项目场景:

当列表数据发生变化时,例如刷新列表或者更改查询条件获取列表数据重新渲染列表。

问题描述

列表正常这样子显示

当列表数据发生变化时,下面的这个状态会一闪而过,然后恢复正常。

原因分析:

列表数据变化时,vue会重新计算列表高度宽度重新渲染,这个过程会导致列表闪烁。

解决方案:

element-ui提供了一个表格方法doLayout,可以使用该方法避免表格闪烁的情况。

  beforeUpdate() {
    this.$nextTick(() => {
      this.$refs['table'].doLayout()
    })
  }

② 

async fn(){
  const res = await getApi(); //在使用接口调取数据后
  this.tableData = res.data.rows; //将数据赋值给列表data
  this.$nextTick(() => { //调用doLayout重新渲染表格
    this.$refs['table'].doLayout();
  })
}

到此这篇关于Vue中el-table条件渲染防止样式乱掉的文章就介绍到这了,更多相关vue el-table条件渲染内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue3中的透传attributes教程示例详解

    vue3中的透传attributes教程示例详解

    这篇文章主要为大家介绍了vue3中的透传attributes教程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Vue3自定义drag指令详解

    Vue3自定义drag指令详解

    这篇文章主要为大家详细介绍了Vue3自定义drag指令的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • 浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑

    浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑

    这篇文章主要介绍了浅谈vue项目利用Hbuilder打包成APP流程,以及遇到的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • vue构建单页面应用实战

    vue构建单页面应用实战

    本篇文章主要介绍了vue构建单页面应用实战,使用 SPA,没有页面切换,就没有白屏阻塞,可以大大提高 H5 的性能,达到接近原生的流畅体验。
    2017-04-04
  • vue3+elementUI实现悬浮多行文本输入框效果

    vue3+elementUI实现悬浮多行文本输入框效果

    这篇文章主要为大家详细介绍了vue3如何引用elementUI实现悬浮文本输入框效果,以便实现多行文本输入,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • Vue自定义指令拖拽功能示例

    Vue自定义指令拖拽功能示例

    本文给大家分享vue自定义指令拖拽功能及自定义键盘信息,非常不错,具有参考借鉴价值,需要的的朋友参考下
    2017-02-02
  • Vue3中如何使用component :is 加载组件

    Vue3中如何使用component :is 加载组件

    Monaco-editor,一个vs code 编辑器,需要将其集成到项目,这篇文章主要介绍了Vue3中如何使用component :is 加载组件,需要的朋友可以参考下
    2023-11-11
  • 使用Bootstrap + Vue.js实现添加删除数据示例

    使用Bootstrap + Vue.js实现添加删除数据示例

    本篇文章主要介绍了使用Bootstrap + Vue.js实现 添加删除数据示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-02-02
  • nginx+vue.js实现前后端分离的示例代码

    nginx+vue.js实现前后端分离的示例代码

    这篇文章主要介绍了nginx+vue.js实现前后端分离的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • vue之bus总线的简单使用解读

    vue之bus总线的简单使用解读

    这篇文章主要介绍了vue之bus总线的简单使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论