位置: IT常识 - 正文

解决el-tree子节点过多导致渲染缓慢问题(el-tree方法)

编辑:rootadmin
解决el-tree子节点过多导致渲染缓慢问题 1、问题背景

推荐整理分享解决el-tree子节点过多导致渲染缓慢问题(el-tree方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:el-tree添加节点,el-tree方法,el-tree自定义节点,el-tree怎么获取选中的节点,el-tree怎么获取选中的节点,el-tree resolve,el–tree,el–tree,内容如对您有帮助,希望把文章链接给更多的朋友!

在使用el-tree中,通常会调用后端接口从而去渲染tree。若后端返回数据量过于庞大,则会导致el-tree渲染缓慢的问题。此时我们通常会使用懒加载tree的方式,也就是点击某一个节点后去调取接口动态获取该节点的子数据。这种方式的确会对性能友好很多。但如果在节点数量在万级以上会有明显的卡顿,若数据量在五万以上可能会导致el-tree假死的情况。

2、解决方案

在市面上可能会有多种解决方案,我个人推荐 @wchbrad/vue-easy-tree这个包。这是一个作者结合el-tree结合虚拟滚动封装的的一个虚拟滚动tree组件,作者博客出处:

vue 实现 tree 树形大量数据的多功能虚拟滚动-Virtual Tree_Brad_chao的博客-CSDN博客_vue树形数据展示

下面是一篇虚拟滚动的文章。作者非常详细的介绍了虚拟滚动。

解决加载大量列表DOM导致浏览器性能瓶颈的虚拟滚动技术_程序员_Cc的博客-CSDN博客_虚拟滚动 

3、使用方式

使用npm下载:

npm install @wchbrad/vue-easy-tree解决el-tree子节点过多导致渲染缓慢问题(el-tree方法)

yarn下载

yarn add @wchbrad/vue-easy-tree

组件中进行引入:

import VueEasyTree from "@wchbrad/vue-easy-tree";// 样式文件,可以根据需要自定义样式或主题import "@wchbrad/vue-easy-tree/src/assets/index.scss"export default { components: { VueEasyTree }}

我使用vue-easy-tree的感觉就是兼容el-tree基本功能并支持大量数据虚拟滚动操作

5、demo演示

说明:通过一个小demo演示并对比el-tree与vue-easy-tree的渲染效率区别

如下图,通过两个按钮来对比两者之间的区别。base作为叶子节点数量。此时我将基数给予1w作为测试

<template> <div class="hello"> <!-- vue-easy-tree --> <el-button @click="()=>{ isBlock=true isBlock2 = false}" >vue-easy-tree</el-button> <!-- el-tree --> <el-button @click="()=>{ isBlock2=true isBlock=false }">el-tree</el-button> <vue-easy-tree ref="veTree" node-key="id" height="calc(100vh - 30px)" :data="treeData" :props="props" v-if="isBlock" ></vue-easy-tree> <el-tree ref="veTree" node-key="id" height="calc(100vh - 30px)" :data="treeData" :props="props" v-if="isBlock2" ></el-tree> </div></template><script>import VueEasyTree from "@wchbrad/vue-easy-tree";// 样式文件,可以根据需要自定义样式或主题import "@wchbrad/vue-easy-tree/src/assets/index.scss";export default { name: "HelloWorld", components: { VueEasyTree, }, data() { return { props: { label: "name", children: "children", }, isBlock:false, isBlock2:false, treeData: [], }; }, created() { const data = [], root = 8, children = 3, base = 10000; for (let i = 0; i < root; i++) { data.push({ id: `${i}`, name: `test-${i}`, children: [], }); for (let j = 0; j < children; j++) { data[i].children.push({ id: `${i}-${j}`, name: `test-${i}-${j}`, children: [], }); for (let k = 0; k < base; k++) { data[i].children[j].children.push({ id: `${i}-${j}-${k}`, name: `test-${i}-${j}-${k}`, }); } } } this.treeData = data; },};</script><!-- Add "scoped" attribute to limit CSS to this component only --><style scoped></style>

 我们先看下el-tree:

如图 我们点击了节点后大概几秒中之后才展开所有节点。并且在收缩节点时也会有明显的卡顿

我们再看看vue-easy-tree的效果。无卡顿,我们通过控制台可以看出,el-tree渲染了所有节点,而虚拟滚动只渲染了可视区域的节点。所以不会卡顿。 

以上就是vue-easy-tree的用法。需要的小伙伴可以进行参考哦,仅供参考。业务场景不同需求也不同

本文链接地址:https://www.jiuchutong.com/zhishi/284023.html 转载请保留说明!

上一篇:莱奇沃思州立公园,纽约 (© Jay O'Brien/Danita Delimont)(莱奇沃思田园城市)

下一篇:Windows7旗舰版系统极品飞车17已停止工作的解决方(win7旗舰系统)

  • 企查查企业信息查询怎么查询个人名下公司

    企查查企业信息查询怎么查询个人名下公司

  • 网络推广的常用方法(网络推广常用方法包括)

    网络推广的常用方法(网络推广常用方法包括)

  • 高德怎么打车(高德怎么打车到两个地方)

    高德怎么打车(高德怎么打车到两个地方)

  • oppofindx2pro支持息屏时钟吗(oppofindx2pro支持多少w快充)

    oppofindx2pro支持息屏时钟吗(oppofindx2pro支持多少w快充)

  • 微信如何取消订阅付款(微信如何取消订阅号消息)

    微信如何取消订阅付款(微信如何取消订阅号消息)

  • 华为荣耀20s的上市时间(华为荣耀20s上面黑点的是什么)

    华为荣耀20s的上市时间(华为荣耀20s上面黑点的是什么)

  • 卡贴机激活显示sim卡无效怎么办(卡贴机激活失败怎么重新激活)

    卡贴机激活显示sim卡无效怎么办(卡贴机激活失败怎么重新激活)

  • 电车soc代表什么意思(电动车里soc是什么意思)

    电车soc代表什么意思(电动车里soc是什么意思)

  • vr怎么使用方法(vr模式怎么用)

    vr怎么使用方法(vr模式怎么用)

  • 字幕与隐藏式字幕有什么用(字幕与隐藏式字幕怎么用)

    字幕与隐藏式字幕有什么用(字幕与隐藏式字幕怎么用)

  • word页脚删除不了(word页眉页脚怎么删除不了)

    word页脚删除不了(word页眉页脚怎么删除不了)

  • wifi已连接但是无法访问互联网是什么意思(wifi已连接但是没有网络是什么原因)

    wifi已连接但是无法访问互联网是什么意思(wifi已连接但是没有网络是什么原因)

  • mate30会搭载鸿蒙系统吗(华为mate30可以搭载鸿蒙系统吗?)

    mate30会搭载鸿蒙系统吗(华为mate30可以搭载鸿蒙系统吗?)

  • 苹果11为什么会卡顿(苹果11为什么会突然变暗)

    苹果11为什么会卡顿(苹果11为什么会突然变暗)

  • vivo手机可以投屏电视吗(vivo手机可以投屏小米电视吗)

    vivo手机可以投屏电视吗(vivo手机可以投屏小米电视吗)

  • 腾讯王卡干什么用(腾讯王卡用来干什么)

    腾讯王卡干什么用(腾讯王卡用来干什么)

  • 怎么查微信删除的记录(怎么查微信删除的好友)

    怎么查微信删除的记录(怎么查微信删除的好友)

  • 拼多多实名认证怎么弄(拼多多实名认证在哪里看到)

    拼多多实名认证怎么弄(拼多多实名认证在哪里看到)

  • 微信收款码是什么意思(微信收款码是什么字体)

    微信收款码是什么意思(微信收款码是什么字体)

  • 微信账单有什么用处(微信账单有什么重要信息)

    微信账单有什么用处(微信账单有什么重要信息)

  • 快手可以私密评论吗(快手私密评论回复别人能看到吗)

    快手可以私密评论吗(快手私密评论回复别人能看到吗)

  • 微信摇是假人怎么解除(微信摇一摇假人解决方法)

    微信摇是假人怎么解除(微信摇一摇假人解决方法)

  • ios12暗黑模式怎么开(苹果ios12暗黑模式怎么设置)

    ios12暗黑模式怎么开(苹果ios12暗黑模式怎么设置)

  • 小米步数怎么同步微信(小米步数怎么同步手机)

    小米步数怎么同步微信(小米步数怎么同步手机)

  • qq小幸运标识(qq小幸运标识什么时候出的)

    qq小幸运标识(qq小幸运标识什么时候出的)

  • 下载的视频在手机哪里(下载的视频在手机图库找不到)

    下载的视频在手机哪里(下载的视频在手机图库找不到)

  • Win10没有组策略编辑器怎么办?Win10没有组策略编辑器的解决方法(没有组策略权限)

    Win10没有组策略编辑器怎么办?Win10没有组策略编辑器的解决方法(没有组策略权限)

  • 请求转发与重定向到底有哪些区别?(请求转发与重定义的区别)

    请求转发与重定向到底有哪些区别?(请求转发与重定义的区别)

  • iozone命令  测试磁盘性能(iozone测试结果分析)

    iozone命令 测试磁盘性能(iozone测试结果分析)

  • 如何修改纳税申报密码
  • 个人所得税全年一次性奖金优惠政策
  • 小规模纳税人公户的钱怎么转出来
  • 增值税认证勾选平台
  • 社保工伤保险可以交两家公司吗
  • 什么时候确认应收股利
  • 损益平准基金
  • 个体户没有办税务登记,产生的房土两税
  • 货代企业都需要交什么税
  • 遗失的支票怎样避免经济损失
  • 轿车被盗
  • 员工食堂餐费可以报销吗
  • 实际利率法的计算过程
  • 捐赠支出税前扣除
  • 出纳现金日记账表格模板
  • 出售交易性金融资产的投资收益
  • 房屋建筑物评估技术鉴定表
  • 股权转让个人交的印花税可以入账吗
  • 大型医用设备维修效益成本分析 课件ppt
  • 中小企业固定资产管理存在的问题
  • 增值税扣税凭证认证期限
  • 金税盘上传参数测试连接失败
  • 印花税的缴纳方式包括
  • 普票被退回如何处理
  • 哪些情况需要补钙
  • 劳务人员劳务费
  • 无法连接到移动网络小米
  • 酒店布草洗涤赔偿怎样折旧
  • 获取当前位置被拒怎么办
  • 企业备用金多久还款
  • mcshield.exe是什么进程
  • win11专业版和家庭版哪个更流畅
  • 发放职工工资计入什么会计科目
  • 公司未经营需要做所得税年度清缴吗
  • 房屋装修固定家具是否计入房产税
  • ui.exe啥意思
  • 核定征收印花税的文件
  • 多域名指向同一ip有问题吗
  • unity常用脚本语言
  • 怎样利用 getnext 命令检索未知对象?
  • layui树形下拉框
  • 物流公司增值税发票
  • 销售价格低于成本价,税务机关是否有权纳税调整?
  • qt 5.15 编译
  • 净营业周期为负数
  • 会计凭证的装订范围包括
  • 记账凭证红字冲销下面合计写不写
  • 生育津贴到公司了公司什么时候发给个人
  • 长期股权投资投资损益的确认
  • 伙食费怎么入账
  • 消费税会计处理的设置
  • 汽车维修费可以入账吗
  • 进出口货物报关单填制规范
  • 员工工资怎么计提
  • 以前年度的销售退回能否直接冲减销售收入
  • 一般纳税人房租租赁费的税率
  • 持有至到期投资是债权投资吗
  • 金融资产减值损失
  • 分红冲抵往来会计分录
  • 企业试生产时间规定
  • 固定资产清理期末
  • mysql数据库优化面试题
  • arch linux安装yay
  • 桌面管理在哪里打开
  • linux中dhcp
  • centos如何删除用户
  • win7电脑无法上网 连接正常
  • opengl绘制三维图形代码
  • javascript中的函数
  • windows安装pycharm
  • shell脚本 !
  • unity getint
  • node.js使用教程
  • 简述javascript中的函数
  • js中数组排序sort的用法
  • 通用申报表怎么填样本
  • 广西地方税务局2018年1号公告
  • 海淀区地税局电话
  • 网上报税失败怎么办
  • 抚顺交车辆购置税在哪交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设