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 包含了树组件全部状态

本文完,感谢阅读。

相关推荐
Gazer_S21 分钟前
【Web 应用缓存与部署优化指南】
前端·缓存
老李笔记1 小时前
VUE element table 列合并
javascript·vue.js·ecmascript
滿1 小时前
Vue3 Element Plus 表格默认显示一行
javascript·vue.js·elementui
好了来看下一题1 小时前
TypeScript 项目配置
前端·javascript·typescript
江城开朗的豌豆1 小时前
Vue的双向绑定魔法:如何让数据与视图‘心有灵犀’?
前端·javascript·vue.js
江城开朗的豌豆1 小时前
Vue权限控制小妙招:动态渲染列表的优雅实现
前端·javascript·vue.js
@菜菜_达2 小时前
CSS a标签内文本折行展示
前端·css
霸王蟹2 小时前
带你手写React中的useReducer函数。(底层实现)
前端·javascript·笔记·学习·react.js·typescript·前端框架
wen's2 小时前
React 中的 useCallback 入门指南:是真需要,还是假怪?
react.js
托尼沙滩裤2 小时前
【Vue3】实现屏幕共享惊艳亮相
前端·javascript·vue.js