Skip to content

Tree 树形控件

用清晰的层级结构展示信息,可展开或折叠。

基础用法

基础的树形结构展示。

可选择

设置 selectable 属性可以让节点变为可选择状态。

复选框

使用 show-checkbox 属性可以为树提供复选框支持。

API

Props

参数说明类型可选值默认值
data展示数据TreeOption[]-[]
defaultExpandedKeys默认展开的节点的 key 数组(string | number)[]-[]
keyField每个树节点用作唯一标识的属性名string-key
labelField指定节点标签为节点对象的某个属性值string-label
childrenField指定子树为节点对象的某个属性值string-children
selectable是否可选择boolean-true
multiple是否支持多选boolean-false
selectedKeys / v-model:selected-keys选中的节点 key 数组(string | number)[]--
showCheckbox是否显示复选框boolean-false
defaultCheckedKeys默认选中的节点 key 数组(string | number)[]-[]
onLoad异步加载数据(node: TreeOption) => Promise<TreeOption[]>--

TreeOption 数据结构

typescript
interface TreeOption {
  key?: string | number      // 节点唯一标识
  label?: string | number    // 节点显示标签
  children?: TreeOption[]    // 子节点
  isLeaf?: boolean           // 是否为叶子节点
  disabled?: boolean         // 是否禁用
  [key: string]: unknown     // 其他自定义属性
}

Events

事件名说明回调参数
update:selectedKeys选中节点变化时触发(keys: (string | number)[]) => void

Slots

插槽名说明参数
default自定义节点内容{ node: TreeNode }

使用示例

vue
<template>
  <AxTree
    :data="treeData"
    :default-expanded-keys="['1']"
    selectable
    v-model:selected-keys="selectedKeys"
  />
</template>

<script setup>
import { ref } from 'vue'
import { AxTree } from '@axis-ui/components'

const selectedKeys = ref([])
const treeData = [
  {
    key: '1',
    label: '节点 1',
    children: [
      { key: '1-1', label: '子节点 1-1' },
      { key: '1-2', label: '子节点 1-2' },
    ],
  },
]
</script>

基于 MIT 协议开源