zent
Version:
一套前端设计语言和基于React的实现
99 lines (77 loc) • 7.2 kB
Markdown
---
title: Tree
subtitle: 树
path: component/tree
group: 信息展示
scatter: true
---
## Tree 树
可视化展示多层级结构的内容,支持展开和折叠。
### 建议
- 层级信息需要在一个窗口中展示时,可使用树组件。
### 注意
- 非层级关系或层级信息无需在一个窗口中展示时,不使用树结构。
### 代码演示
<!-- demo-slot-1 -->
<!-- demo-slot-2 -->
<!-- demo-slot-7 -->
<!-- demo-slot-8 -->
<!-- demo-slot-9 -->
### API
#### Tree
| 参数 | 说明 | 类型 | 默认值 | 备选值 |
| ----------------------- | ------------------------------------------------------------------- | ------------------- | ---------- | -------------------- | --- |
| dataType | 数据类型, 默认为 tree 类型 | string | `'tree'` | `'plain'` |
| data | 必填, 实际传入的数据, 根据 dataType 进行识别 | array | | |
| renderKey | 渲染节点所用到的 key 集合, 具体看下表 | object | | |
| render | 自定义树条目渲染方法, 传入参数为该节点数据 (包含子树) | func(data) | | |
| operations | 自定义操作, 包含 `name`, `icon`, `action`, `shouldRender` 属性 | array[object] | | |
| foldable | 是否支持点击条目时展开与收起动作 | bool | `true` | |
| onCheck | 点击 checkbox 的回调函数, 接受所选中节点的数组与帮助自定义的信息 | func(ids, helpInfo) | | |
| checkable | 是否支持 checkbox 选择 | bool | `true` | | |
| checkedKeys | checkbox 选中节点 id 数组 | array | | |
| disabledCheckedKeys | checkbox 默认禁选节点 id 数组 | array | | |
| size | 大小 | string | `'medium'` | `'small'`, `'large'` |
| commonStyle | 设置整个 tree 的外层 style | object | | |
| expandAll | 是否展开所有节点 | bool | `false` | |
| onExpand | 展开节点之后的回调函数 | func(data, config) | | |
| autoExpandOnSelect | 点击节点是否展开 | bool | `false` | |
| onSelect | 选择树的一个节点的回调函数 | func(data, target) | | |
| isRoot | plain 数据类型,判断节点是否为根节点的 api | func(node) | | |
| loadMore | 返回 Promise 的函数,必须支持 then 的回调, 用于节点异步加载更多内容 | func(data) | | |
| selectable | 节点是否可选 | bool | `true` | |
| selectedKey | 当前选中的节点 | `string`\|`number` | | |
| disabledSelectedKeys | 禁选的节点 ID 集合 | `(string | number)[]` | | |
| disableSelectedStrictly | 父级被禁选时是否同时禁选其子级 | `boolean` | `false` | `true` |
| onlyShowOneLine | title 是否只展示一行 | `boolean` | `false` | `true` |
#### renderKey
针对 `data` 使用到的部分 key,定制化。
| 参数 | 说明 | Type | Default |
| -------- | ------------------------------------------ | ------ | ------------ |
| id | 对应 数据的唯一标识 | string | `'id'` |
| title | 对应 显示内容 | string | `'title'` |
| children | 对应 子树 (`dataType="tree"` 时生效) | string | `'children'` |
| parentId | 对应 父节点 Id (`dataType="plain"` 时生效) | string | `'parentId'` |
#### data
可在每个节点任意添加初下列属性之外的 key-value,回调函数中会拿到用户传入的完整数据。
可以通过`renderKey`, 定制 key。
| 参数 | 说明 | 类型 | 默认值 | 备选值 |
| -------- | ---------------------------------------------------------- | ------------- | ------- | ------ |
| id | 必填, 数据的唯一标识 | number/string | | |
| title | 必填, 显示内容 | string | | |
| children | 子树 (`dataType="tree"` 时生效) | array[object] | | |
| parentId | 父节点 Id (`dataType="plain"` 时生效), 根节点为 0 或不定义 | number/string | | |
| expand | 是否展开 | bool | `false` | |
| isLeaf | 是否叶子节点 | bool | `false` | |
#### operations
| 参数 | 说明 | 类型 | 默认值 | 备选值 |
| ------------ | ------------------------------------ | ----------------- | ------ | ------ |
| name | 必填,显示内容 | string | | |
| icon | 显示 icon 的 className, 或 ReactNode | string/ReactNode | | |
| action | 必填,点击回调函数,参数为子树信息 | func(data) | | |
| shouldRender | 是否更新,返回 true/false | func(data) | `true` | |
#### 以下功能新版设计语言已废弃,仅作为老版使用的参考
<!-- demo-slot-3 -->
<!-- demo-slot-4 -->
<!-- demo-slot-5 -->
<!-- demo-slot-6 -->