Tree V2 虚拟化树形控件测试版
无论数据量多大,都具有极快滚动性能的树形视图
基础用法
基础的树形结构。
可选
用于节点选择。
警告
当使用 show-checkbox 时,由于 `check-on-click-leaf` 默认为 true,可以通过点击最后的子节点来选中它们。
禁用复选框
节点的复选框可以被设置为禁用。
在本例中,`disabled` 属性在 defaultProps 中声明,并且某些节点被设置为 `disabled: true`。相应的复选框被禁用,无法点击。
默认展开和默认选中
树节点可以初始展开或选中
分别使用 `default-expanded-keys` 和 `default-checked-keys` 来设置初始展开和初始选中的节点。
自定义节点内容
树节点的内容可以自定义,因此您可以随心所欲地添加图标或按钮
[ElementPlus]节点-1
[ElementPlus]节点-2
[ElementPlus]节点-3
[ElementPlus]节点-4
[ElementPlus]节点-5
[ElementPlus]节点-6
[ElementPlus]节点-7
[ElementPlus]节点-8
[ElementPlus]节点-9
[ElementPlus]节点-10
自定义节点类 2.9.0
树节点的类可以自定义
自定义节点图标 2.10.3
您可以为不同的节点状态自定义图标。树节点公开 `expanded` 属性和 `isLeaf` 属性,允许您根据节点的状态动态渲染不同的图标:叶节点、展开的节点或折叠的节点。
树节点过滤 2.9.1
`filter-method` 方法在 `2.9.1` 版本之后才能接受第三个参数。树节点可以被过滤
调用 Tree 实例的 `filter` 方法来过滤树节点。其参数是过滤关键字。请注意,要使其生效,`filter-method` 是必需的,其值是过滤方法。
TreeV2 属性
名称 | 描述 | 类型 | 默认值 |
---|---|---|---|
data | 树数据 | object | — |
empty-text | 数据为空时显示的文本 | string | — |
props | 配置选项,请参见下表 | object | — |
highlight-current | 是否高亮当前节点 | boolean | false |
expand-on-click-node | 是否在点击节点时展开或折叠节点,如果为 false,则仅在点击箭头图标时展开或折叠节点。 | boolean | true |
check-on-click-node | 是否在点击节点时选中或取消选中节点,如果为 false,则只能通过点击复选框来选中或取消选中节点。 | boolean | false |
check-on-click-leaf 2.9.6 | 是否在点击叶子节点(最后的子节点)时选中或取消选中节点。 | boolean | true |
default-expanded-keys | 初始展开节点的键数组 | object | — |
show-checkbox | 节点是否可选 | boolean | false |
check-strictly | 当 `show-checkbox` 为 `true` 时,节点的选中状态是否不影响其父节点和子节点 | boolean | false |
default-checked-keys | 初始选中节点的键数组 | object | — |
current-node-key | 初始选中节点的键 | string / number | — |
filter-method | 使用过滤方法时,此函数将在每个节点上执行。如果返回 `false`,树节点将被隐藏。 | Function | — |
indent | 相邻层级节点之间的水平缩进(以像素为单位) | number | 16 |
icon | 自定义树节点图标组件 | string / Component | — |
item-size 2.2.33 | 自定义树节点高度 | number | 26 |
scrollbar-always-on 2.10.4 | 总是显示滚动条 | boolean | false |
props
属性 | 描述 | 类型 | 默认值 |
---|---|---|---|
value | 节点的唯一标识键名,其值在整个树中应唯一 | string | id |
label | 指定节点对象的哪个键用作节点的标签 | string | label |
children | 指定哪个节点对象用作节点的子树 | string | children |
disabled | 指定节点对象的哪个键表示节点的复选框是否被禁用 | string | disabled |
class 2.9.0 | 自定义节点类名 | string / Function | — |
TreeV2 方法
`Tree` 有以下方法,它返回当前选中的节点数组。
方法 | 描述 | 参数 |
---|---|---|
filter | 过滤所有树节点,被过滤的节点将被隐藏 | (query: string) |
getCheckedNodes | 如果节点可选(`show-checkbox` 为 `true`),则返回当前选中的节点数组 | (leafOnly: boolean) |
getCheckedKeys | 如果节点可选(`show-checkbox` 为 `true`),则返回当前选中的节点键数组 | (leafOnly: boolean) |
setCheckedKeys | 将某些节点设置为选中 | (keys: TreeKey[]) |
setChecked | 设置节点是否选中 | (key: TreeKey, checked: boolean) |
setExpandedKeys | 将某些节点设置为展开 | (keys: TreeKey[]) |
getHalfCheckedNodes | 如果节点可选(`show-checkbox` 为 `true`),则返回当前半选中的节点数组 | — |
getHalfCheckedKeys | 如果节点可选(`show-checkbox` 为 `true`),则返回当前半选中的节点键数组 | — |
getCurrentKey | 返回高亮节点的键(如果没有节点高亮,则为 undefined) | — |
getCurrentNode | 返回高亮节点的数据(如果没有节点高亮,则为 undefined) | — |
setCurrentKey | 通过键设置高亮节点 | (key: TreeKey) |
getNode | 通过键或数据获取节点 | (data: TreeKey | TreeNodeData) |
expandNode | 展开指定节点 | (node: TreeNode) |
collapseNode | 折叠指定节点 | (node: TreeNode) |
setData | 当数据量非常大时,使用响应式数据会导致性能不佳,因此我们提供一种方法来避免这种情况 | (data: TreeData) |
scrollTo 2.8.0 | 滚动到给定位置 | (offset: number) |
scrollToNode 2.8.0 | 使用指定的滚动策略滚动到给定的树键 | (key: TreeKey, strategy?: auto | smart | center | start | end) |
TreeV2 事件
名称 | 描述 | 参数 |
---|---|---|
node-click | 当节点被点击时触发 | (data: TreeNodeData, node: TreeNode, e: MouseEvent) |
node-drop 2.8.3 | 当拖拽某物并放到节点上时触发 | (data: TreeNodeData, node: TreeNode, e: DragEvent) |
node-contextmenu | 当节点被右键点击时触发 | (e: Event, data: TreeNodeData, node: TreeNode) |
check-change | 当节点的选中状态改变时触发 | (data: TreeNodeData, checked: boolean) |
check | 点击节点的复选框后触发 | (data: TreeNodeData, info: { checkedKeys: TreeKey[],checkedNodes: TreeData, halfCheckedKeys: TreeKey[], halfCheckedNodes: TreeData,}) |
current-change | 当前节点改变时触发 | (data: TreeNodeData, node: TreeNode) |
node-expand | 当前节点打开时触发 | (data: TreeNodeData, node: TreeNode) |
node-collapse | 当前节点关闭时触发 | (data: TreeNodeData, node: TreeNode) |
TreeV2 插槽
名称 | 描述 |
---|---|
- | 自定义树节点内容。作用域参数是 `{ node: TreeNode, data: TreeNodeData }` |
empty 2.9.0 | 空状态,您可以自定义数据为空时的内容。 |