认识
2024年04月15日
一、认识
二、方案
2.1 递归方案
2.2 扁平方案
Tree
组件的核心思路是将原始的嵌套 children
数据结构平铺成一维数组,然后通过计算每个节点的深度(deep
)、层级关系等信息,在渲染时动态计算缩进宽度、连接线等,从而实现树形结构的可视化。
一. Tree
组件如何实现高性能大数据渲染?
-
将原始树形数据平铺为一维数组,便于后续计算
-
计算出实际需要渲染的节点数据,过滤隐藏的节点
-
利用虚拟列表技术只渲染可视区域的数据,实现大数据量的高效渲染
二、如何计算Tree
组件中节点的各种状态(展开/折叠、选中等)?
-
展开/折叠状态根据
ExpandedKeys
计算 -
复选框选中状态需要考虑受控/非受控,严格受控模式,及父子节点关联
-
需要递归计算父节点和子节点的状态
-
利用平铺后的索引进行相关节点查询
三、Tree
组件的交互如何实现?点击节点展开折叠,复选框状态切换等
-
点击展开折叠通过更新节点自身状态、可视状态及
ExpandedKeys
实现 -
点击复选框需要递归更新父子节点的状态,及相关
keys
-
计算并保存实时状态,通过回调函数通知外部