SEMI DESIGN 源码学习(八)树形控件

Tree

Tree 组件位于 packages/semi-ui/tree/index.tsx

静态属性 contextType 是框架全局 configProvider 的类型,用来获取应用全局状态。

Tree 使用 foundation: TreeFoundation 属性调用业务方法

它的 adapter 实现了 foundation 所需的方法。

NodeList

树组件的 renderNodeList 是渲染核心方法,在不使用虚拟列表的情况下它返回一个 NodeList 组件

NodeList 使用 renderTreeNode 方法渲染树的子节点

renderTreeNodeTree 组件本身的方法,遍历 mapData 返回 TreeNode 组件渲染树节点

TreeNode 组件通过 level 属性确定节点的层级

VirtualList

当使用虚拟列表的时候 renderNodeList 返回一个 AutoSizer 组件, 里面包裹了一个VirtualList

option 属性同样使用 renderTreeNode 方法渲染子节点

TreeContext

最后 Treerender 方法返回一个 TreeContext.Provider,用来管理整个树组件的状态

TreeContext 包含了树组件全部状态

本文完,感谢阅读。

相关推荐
小李子呢02111 小时前
前端八股CSS(2)---动画的实现方式
前端·javascript
GreenTea3 小时前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
渣渣xiong3 小时前
从零开始:前端转型AI agent直到就业第五天-第十一天
前端·人工智能
布局呆星4 小时前
Vue3 | 组件通信学习小结
前端·vue.js
C澒4 小时前
IntelliPro 企业级产研协作平台:前端智能生产模块设计与落地
前端·ai编程
OpenTiny社区5 小时前
重磅预告|OpenTiny 亮相 QCon 北京,共话生成式 UI 最新技术思考
前端·开源·ai编程
前端老实人灬5 小时前
web前端面试题
前端
Moment5 小时前
AI 全栈指南:NestJs 中的 Service Provider 和 Module
前端·后端·面试
IT_陈寒5 小时前
为什么我的JavaScript异步回调总是乱序执行?
前端·人工智能·后端