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

vue-table的使用,解决懒加载展开列,数据量过大,造成的卡顿问题

场景

有需求,使用懒加载的展开列,当加载的数据量过大,如大于1000条以上,浏览器可能卡死挂了

分析

大量的dom的渲染绘制,导致了浏览器处理不过来

解决

虚拟列表

vue-table 虚拟列表的使用

vue-table官网

<vxe-table border resizable height="100%" ref="xTree" row-id="rid" class="mytable-style":row-class-name="rowBackgroundColor" :key="JSON.stringify(columnList)":row-config="{keyField:'rid'}" show-overflow="tooltip":tree-config="{reserve:true,accordion:true,lazy: true, transform: true, rowField: 'rid', parentField: 'parentId', hasChild: 'haveMultiplePrice', loadMethod: loadChildren}":data="tableData" :scroll-y="{enabled: true,gt:20}" @checkbox-change="selectChangeEvent" @checkbox-all="selectChangeEvent"><vxe-column type="checkbox" width="40" fixed="left" align="center"></vxe-column><vxe-column width="72" fixed="left" title="状态" align="right" tree-node :show-overflow="false"><template #default="{ row }"><el-tooltip class="item" effect="dark" :content="'方案 : ' + row.monitorNames"placement="right-start"><i class="el-icon-bell" v-show="row.monitor == 1"></i></el-tooltip><el-tooltip class="item" effect="dark" content="提示" placement="right-start"><i class="el-icon-view" v-show="row.popup == 1"></i></el-tooltip><span style="opacity: 0;width: 0;display: inline-block;">.</span></template></vxe-column><vxe-column :field="item.prop" :title="item.label" show-overflow :width="item.width":header-align="item.align" :align="item.align" v-for="item in columnList" :key="item.prop":fixed="['scode','sname'].includes(item.prop)?'left':''" :visible="item.visible"><template slot="header"><span slot="reference" title="优先" v-if="item.prop === 'limitLeft'">{{item.label}}<i class="el-icon-question c-blue f14"></i></span><div v-else>{{ item.label }}</div></template></vxe-column>
</vxe-table>selectChangeEvent ({ checked }) {this.multipleSelection = this.$refs.xTree.getCheckboxRecords()},rowBackgroundColor ({ row, rowIndex }) {if (row.stop == 0) {return 'row-ccc'} else if (row.qualify == 1) {return 'row-red'}return null},getColumnData (list) {this.columnList = list;},loadChildren ({ row }) {// row.parentId = row.ridreturn new Promise(resolve => {loadChild({ ldate: row.ldate, scode: row.scode, rid: row.rid }).then(res => {if (res.code === 0) {resolve(res.data.map(item => ({...item,parentId: row.rid,})))} else {resolve([])}})})},

相关文章:

  • 12 FreeRTOS 调试与优化
  • Flutter 中的 SliverPrototypeExtentList 小部件:全面指南
  • TiDB-从0到1-分布式事务
  • 蓝桥杯2024国赛--备赛刷题题单
  • Linux--进程间通信(1)(匿名管道)
  • LabVIEW软件需求分析文档内容和编写指南
  • 2024最新群智能优化算法:大甘蔗鼠算法(Greater Cane Rat Algorithm,GCRA)求解23个函数,提供MATLAB代码
  • llama-factory微调大模型
  • 深入分析 Android Activity (六)
  • [C#]使用C#部署yolov8-seg的实例分割的tensorrt模型
  • vscode写html不会自动补全
  • 东方博宜1703 - 小明买水果
  • 数据结构:希尔排序
  • 身份认证与口令攻击
  • excel怎么对非数字求和汇总?
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Druid 在有赞的实践
  • HTTP--网络协议分层,http历史(二)
  • idea + plantuml 画流程图
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript新鲜事·第5期
  • Java到底能干嘛?
  • KMP算法及优化
  • learning koa2.x
  • mysql外键的使用
  • SOFAMosn配置模型
  • Webpack 4 学习01(基础配置)
  • 动态魔术使用DBMS_SQL
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 如何实现 font-size 的响应式
  • 我的业余项目总结
  • 一、python与pycharm的安装
  • Python 之网络式编程
  • ​ArcGIS Pro 如何批量删除字段
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (苍穹外卖)day03菜品管理
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (小白学Java)Java简介和基本配置
  • (转)Oracle存储过程编写经验和优化措施
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)hibernate缓存
  • 、写入Shellcode到注册表上线
  • ./和../以及/和~之间的区别
  • .apk文件,IIS不支持下载解决
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .FileZilla的使用和主动模式被动模式介绍
  • .gitignore文件设置了忽略但不生效
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET/C#⾯试题汇总系列:⾯向对象
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .Net的DataSet直接与SQL2005交互
  • /dev/sda2 is mounted; will not make a filesystem here!