zent
Version:
一套前端设计语言和基于React的实现
109 lines (89 loc) • 5.12 kB
Markdown
# zent-tree
[](https://www.npmjs.com/package/zent-tree) [](https://www.npmjs.com/package/zent-tree)
树形架构展示组件, 展现层级关系, 并提供展开/收起/选择等交互功能.
## 使用场景
需要展示文件夹、组织架构、生物分类、国家地区等等数据.
## 使用指南
### 支持两种源数据结构
```sh
|__root
|__son
| |__grandSon
|__daughter
```
#### plain
```js
const data = [{
id: 1,
title: 'root',
parentId: 0
}, {
id: 2,
title: 'son',
parentId: 1
}, {
id: 3,
title: 'daughter',
parentId: 1
}, {
id: 4,
title: 'grandSon',
parentId: 2
}];
```
#### tree
```js
const data = [{
id: 1,
title: 'root',
children: [{
id: 2,
title: 'son',
children: [{
id: 4,
title: 'grandSon'
}, {
id: 3,
title: 'daughter'
}]
}]
}];
```
## API
### Tree
| 参数 | 说明 | 类型 | 默认值 | 备选值 |
| ------------------- | ----------------------------------------------------- | ------------------ | ---------- | -------------------- |
| dataType | 数据类型, 默认为tree类型 | string | `'tree'` | `'plain'` |
| data | 必填, 实际传入的数据, 根据dataType进行识别 | array | | |
| render | 自定义树条目渲染方法, 传入参数为该节点数据 (包含子树) | func(data) | | |
| operations | 自定义操作, 包含 `name`, `icon`, `action`, `shouldRender` 属性 | array[object] | | |
| foldable | 是否支持点击条目时展开与收起动作 | bool | `true` | |
| checkable | 是否支持checkbox选择 | bool | `true` | |
| onCheck | 点击checkbox的回调函数, 传入包含所有点击节点id数组 | func(data) | | |
| defaultCheckedKeys | 默认选中节点id数组 | array | | |
| disabledCheckedKeys | 默认禁选节点id数组 | array | | |
| size | 大小 | string | `'medium'` | `'small'`, `'large'` |
| commonStyle | 设置整个tree的外层style | object | | |
| expandAll | 是否展开所有节点 | bool | `false` | |
| onExpand | 展开节点之后的回调函数 | func(data, config) | | |
| autoExpandOnSelect | 点击节点是否展开 | bool | `true` | |
| onSelect | 选择树的一个节点的回调函数 | func(data, target) | | |
| isRoot | plain数据类型,判断节点是否为根节点的api | func(node) | | |
### 组件的重要属性
#### data
支持自由扩展
| 参数 | 说明 | 类型 | 默认值 |
| -------- | ----------------------------------------- | ------------- | ------- |
| 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 | string | 否 |
| action | 点击回调函数,参数为子树信息 | func(data) | 是 |
| shouldRender | 是否更新,返回true/false | func(data) | 否 |