首页 > 其他分享 >el-tree数据量过大导致页面卡顿

el-tree数据量过大导致页面卡顿

时间:2024-03-06 17:45:40浏览次数:17  
标签:el return tree value sangtian152 virtual 节点 卡顿

问题:el-tree等树形结构,当数据量非常大,渲染会很慢

解决方案:

懒加载
方法:设置lazy属性为true,当点击父级节点时,再通过load方法加载子列表。
优点:使用简单。
缺点:不能做回显,无法展开全部节点。

虚拟列表
方法:使用插件或者自己实现一个虚拟列表(推荐:https://sangtian152.github.io/virtual-tree/zh/demo/)
优点:不论数据多少,都可以实现快速加载。
缺点:暂未发现。

 

虚拟列表使用流程:
1、安装插件

npm install @sangtian152/virtual-tree

2、在main.js中引入组件

1 import VlTree from '@sangtian152/virtual-tree';
2 import "@sangtian152/virtual-tree/lib/vl-tree.css";
3 Vue.use(VlTree);

3、使用

 1 <template>
 2     <vl-tree
 3       ref="treeForm"
 4       :height="600"
 5       :show-checkbox="true"
 6       :check-strictly="true"
 7       :node-key="'treeId'"
 8       :data="treedata"
 9       :props="deprops"
10       :default-expanded-keys="defaultExpand"
11       :default-checked-keys="defaultChecked"
12       :filter-method="filterNode"
13       @check="handleNodeClick">
14     </vl-tree>
15 </template>
16 
17 <script>
18 export default {
19     data() {
20         return {
21             deprops: { // 默认配置
22                 value: 'treeId', // treeId 为节点id,唯一值
23                 label: 'nodeName',
24                 children: 'childList',
25             },
26             treedata: [], // 数据
27             defaultExpand: [], // 默认展开节点
28             defaultChecked: [] // 默认选中节点,用于回显
29         }
30     },
31     methods: {
32         // 搜索
33         filterNode(value, data) {
34           if (!value) return true
35           return data.nodeName.indexOf(value) !== -1
36         },
37         // 选中节点
38         handleNodeClick(node, list) {
39           console.log(node, list) // 处理选中节点
40         }
41       }
42 }
43 </script>

 

 

以上解决方案已实践,可以满足需求,如有更好的方案,请留言告知,万分感谢~

标签:el,return,tree,value,sangtian152,virtual,节点,卡顿
From: https://www.cnblogs.com/GTbk/p/18057166

相关文章

  • Elasticsearch集群生产配置
    集群配置在组建集群时,需要额外添加集群相关的配置,如节点角色、集群发现、初始主节点、主节点选举和安全认证等,以下配置均在上篇创建Elasticsearch单机实例的基础上搭建。设置集群名称vielasticsearch.yml#统一集群名字cluster.name:my-application#移除该配置discover......
  • Python list列表pop弹出内容del移除内容结果不对错误
    前言全局说明Pythonlist列表pop弹出内容del移除内容结果不对一、功能需求一个list列表,内容是1-9,用for循环打印,打印过的值,从列表中删除二、输出结果不对,代码有问题文件名:test.py#!/usr/bin/envpython3#coding:UTF-8#-*-coding:UTF-8-*-lists_1=['a','b']......
  • excel 自动新增以及填充数据
    拿下图举例: 客户编码需要自增一直到结尾1、选中第一行ctrl+shift+箭头下2、选择开始==》填充==》序列==》等差序列 设置步长即可 ......
  • Label组件中显示本地图片
    在Label组件中显示本地图片,通常涉及将图片文件加载到程序中,并将其作为图像对象设置到Label上。这里以Python的Tkinter库为例,介绍如何在Label组件中显示本地图片:导入必要的库:fromtkinterimportTk,Label,PhotoImagefromPILimportImage,ImageTkimportos加载本地图......
  • BeanShell 如何加密加签?
    一首先我们要搞清楚接口签名步骤:**第一步:初步实现接口****第二步:找开发拿到算法和key***key:sAHDRNJg0ZevmEn7HwBfbw==*算法:HmacMD5咱们就找一个https://www.wenjiangs.com/doc/85uwistv*在JMeter当中,需要引入第三方的包才能支持HmacMD5**第三步:问开发生成sign的逻辑**......
  • VUE通过for循环一行显示多列el-row
    效果图: 代码: <template><el-row:gutter="0"v-for="(item,index)inarrLen":key="item.name"style="height:200px">......
  • Docker启动单机elasticsearch生产配置
    宿主机目录挂载在docker容器中运行elasticsearch时,需要进行配置、插件、日志和数据文件的挂载。创建挂载文件切换es用户sues01创建es本地目录cd/data&&mkdires_node1在es_node1下面创建配置、日志、数据目录cd/data/es_node1&&mkdirlogsdataconfigplugins基......
  • 29. 绑定 Gameplay Panel 数据
    本节目标当玩家抽卡、弃卡的时候,抽牌堆和弃牌堆的数量要与实际的保持一致实现方法添加抽牌堆数量和弃牌堆数量变更事件抽牌弃牌的时候发布事件绑定广播事件GameplayPanel接收事件首先GameplayPanel需要在OnEnable的时候,绑定相关的UI元素当事件到来的时候,调用Up......
  • pageoffice6动态生成Excel文件
    转载:动态生成Excel文件#动态生成Excel文件查看本示例演示效果本示例关键代码的编写位置Vue+Springboot注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如文档路径,用户名等做适当修改即可使用。使用com.zhuozhengsoft.pageoffice.excelwriter命名空......
  • thymeleaf 用法
    使用注意事项 1.pom中添加依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>2.application.properties文件的配置#THYME......