位置: 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旗舰系统)

  • 怎么样准确的预估店铺的销量(如何准确的进行预测)

    怎么样准确的预估店铺的销量(如何准确的进行预测)

  • 华为p30时间怎么设置24小时制(华为p30时间怎么调整)

    华为p30时间怎么设置24小时制(华为p30时间怎么调整)

  • 赣通码黄边框怎么回事(赣通码金色边框)

    赣通码黄边框怎么回事(赣通码金色边框)

  • 微信怎么查看聊天记录(微信怎么查看聊天记录占用空间)

    微信怎么查看聊天记录(微信怎么查看聊天记录占用空间)

  • 重装系统对电脑有损害的吗(电脑重装系统怎么操作)

    重装系统对电脑有损害的吗(电脑重装系统怎么操作)

  • 微信的聊天记录怎么找回(微信的聊天记录怎么保存才不会丢失)

    微信的聊天记录怎么找回(微信的聊天记录怎么保存才不会丢失)

  • 美团众包为什么会有转单了(美团众包为什么抢不到单)

    美团众包为什么会有转单了(美团众包为什么抢不到单)

  • 抖音关注又取消显示吗(抖音关注又取消有影响吗)

    抖音关注又取消显示吗(抖音关注又取消有影响吗)

  • 华为手机如何延长手机熄屏时间(华为手机如何延长使用寿命)

    华为手机如何延长手机熄屏时间(华为手机如何延长使用寿命)

  • 手机QQ能共看电影吗(手机qq上如何共享一起看电影)

    手机QQ能共看电影吗(手机qq上如何共享一起看电影)

  • oppoa8是快充吗(opopa8有快充吗)

    oppoa8是快充吗(opopa8有快充吗)

  • 电脑有声音,但是黑屏了(电脑有声音但是屏幕不显示怎么办)

    电脑有声音,但是黑屏了(电脑有声音但是屏幕不显示怎么办)

  • 支付宝扣费设置在哪里(支付宝扣费设置在哪里关闭)

    支付宝扣费设置在哪里(支付宝扣费设置在哪里关闭)

  • 刚申请的微信号加人显示异常(刚申请的微信号被限制怎么解封)

    刚申请的微信号加人显示异常(刚申请的微信号被限制怎么解封)

  • 如何避免好友拉微信群(如何避免好友拉进群聊)

    如何避免好友拉微信群(如何避免好友拉进群聊)

  • uhd617相当于什么显卡(uhd617和uhd620)

    uhd617相当于什么显卡(uhd617和uhd620)

  • 抖音短视频属于腾讯吗(抖音短视频属于自媒体吗?)

    抖音短视频属于腾讯吗(抖音短视频属于自媒体吗?)

  • mkpx2电容是什么电容(mkp x2电容)

    mkpx2电容是什么电容(mkp x2电容)

  • 移动卡激活sim输入几位(移动卡激活sim输入密码)

    移动卡激活sim输入几位(移动卡激活sim输入密码)

  • etc显示标签已失效还能用吗(ETc显示标签已失效,把卡安插两次可以吗)

    etc显示标签已失效还能用吗(ETc显示标签已失效,把卡安插两次可以吗)

  • 苹果超广角镜头怎么开(苹果超广角镜头什么意思)

    苹果超广角镜头怎么开(苹果超广角镜头什么意思)

  • 乐视2怎么关闭小广告(乐视2怎么关闭登录网络)

    乐视2怎么关闭小广告(乐视2怎么关闭登录网络)

  • 坚果pro3怎么截屏(坚果pro3截图快捷键)

    坚果pro3怎么截屏(坚果pro3截图快捷键)

  • ios13怎么移动app(苹果13怎么把软件放到桌面)

    ios13怎么移动app(苹果13怎么把软件放到桌面)

  • 黑鲨能用小爱同学吗(黑鲨有小爱同学么)

    黑鲨能用小爱同学吗(黑鲨有小爱同学么)

  • vivos1pro充满电要多久(vivo手机充满电后继续充对电池有没有影响)

    vivos1pro充满电要多久(vivo手机充满电后继续充对电池有没有影响)

  • 一加7是90hz吗(一加7是90hz屏幕吗)

    一加7是90hz吗(一加7是90hz屏幕吗)

  • bios如何恢复默认设置?bios恢复默认设置的方法(bios如何恢复默认值)

    bios如何恢复默认设置?bios恢复默认设置的方法(bios如何恢复默认值)

  • 【HTML+CSS】实现网页的导航栏和下拉菜单(html cssjs)

    【HTML+CSS】实现网页的导航栏和下拉菜单(html cssjs)

  • 【前端】图片懒加载的原理和三种实现方式(前端image)

    【前端】图片懒加载的原理和三种实现方式(前端image)

  • 国债 企业债
  • 月中入职新公司社保谁交
  • 请客户旅游算不算贿赂
  • 法人把自己的车租给公司交什么税
  • 报销应聘人员差旅费
  • 免税的开成有税率的怎么办
  • 税务证丢失可以注销吗
  • 建筑工程类发票
  • 汇算清缴需要准备哪些数据
  • 新公司核税需要什么资料
  • 补交前期未开票收入税金本期怎么申报?
  • 银行退回服务费怎么写分录
  • 货币资金主要内容
  • 个人独资企业改为有限公司
  • 三证合一后换章子要多久
  • 取得抵债房产的涉税风险,你清楚吗?
  • 公司注销有哪些原因
  • 个人所得税的速算扣除数是什么意思
  • 企业收付款流程图
  • 货代发票税率是多少
  • 2019年城建税减免政策
  • 新企业购买金税盘
  • 苹果手机zm
  • win11怎么调整任务栏位置
  • 投入资本回报率是总资产报酬率吗
  • 现金日记账期初余额怎么登账
  • win10专业版如何改为家庭版
  • msmpeng.exe是什么进程
  • php excute
  • 商企预提待付费什么意思
  • 森林里雾气弥漫,给大家带来了什么困难?
  • php中关键字修饰属性是什么
  • 财务费用是一种期间费用,按期归集
  • 增值税代扣代缴税率是多少
  • 工作服列支什么科目
  • 制造费用的工资怎么结转
  • abap webservice
  • 新增总产值
  • 折旧提取后资金如何处理
  • 技术服务的范围
  • 厂区道路不应该使用哪种材料
  • 零售企业商品盘点发生溢余后,在查明原因前,应按
  • 企业销售旧车如何开票
  • 个税APP怎么填报扣税最少
  • 差旅费报销会计凭证
  • mysql 中文排序是什么规则
  • 合同可以盖财务章子吗
  • 应交税费属什么类科目
  • 计提和发放工资的会计科目
  • 销售免税农产品的会计分录
  • 应收外币科目在哪里设置
  • 工会经费与工会福利的区别
  • 企业处置固定资产增值税税率
  • 收到国库退款
  • 固定资产出售账面价值计入什么科目
  • 子公司的财务管理方法
  • mysql5.0使用教程
  • sql server复制数据库的方法
  • windowsxp2
  • 卷影复制是什么
  • ubuntu20.04怎么用
  • 如何关闭mcafee软件
  • ps是什么文件
  • linux如何进行命令操作
  • 放大镜windows快捷键
  • linux修改环境变量后需要重启吗
  • win8系统没有声音怎么办
  • unity开发游戏教程
  • 轻松掌握瓷砖铺贴技术 pdf
  • Node.js中的全局对象有
  • android intent作用
  • centos6升级到centos8
  • shell bash sh
  • unity多人游戏
  • js进行表单验证的目的是什么
  • Javascript & DHTML 实例编程(教程)(四)初级实例篇2—动画
  • 大数据在税务稽查的应用
  • 我们如何理解税收意义
  • 自然人电子税务局web端怎么进入
  • 控件未安装或控件版本过低
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设