Skip to content

Tree 树形控件

用清晰的层级结构展示信息的树形控件,支持展开/收起、节点选中、多选复选框 (Checkable)、自定义图标与节点内容插槽。


代码示例

1. 基础用法 (Basic Usage)

vue
<template>
  <mu-tree :data="treeData" default-expand-all @select="onSelect" />
</template>

<script setup>
import { ref } from 'vue'

const treeData = ref([
  {
    id: '1',
    label: '核心组件库',
    children: [
      { id: '1-1', label: '按钮 Button' },
      { id: '1-2', label: '弹出层 Popup' }
    ]
  }
])

function onSelect({ key, data }) {
  console.log('当前选中节点:', key, data)
}
</script>

2. 多选复选框 (Checkable Tree)

设置 checkable 开启复选框多选模式。

vue
<template>
  <mu-tree
    :data="deptData"
    checkable
    default-expand-all
    @check="onCheck"
  />
</template>

<script setup>
function onCheck({ key, checked, checkedKeys }) {
  console.log('已勾选节点 Key 列表:', checkedKeys)
}
</script>

API 属性说明 (Props)

参数名说明类型可选值默认值
data嵌套树形数据结构数组Array-[]
defaultExpandAll是否默认展开所有节点Booleantrue | falsefalse
expandedKeys展开节点的 key 数组Array-[]
checkedKeys勾选节点的 key 数组Array-[]
selectedKey当前选中的单节点 keyString | Number-''
checkable是否显示复选框支持多选Booleantrue | falsefalse
indent层级缩进缩进量 (rpx)Number-40
fieldNames自定义节点字段别名Object-{ label: 'label', children: 'children', key: 'id' }

事件说明 (Events)

事件名说明回调参数
select点击选中单节点时触发(res: { key: string/number, data: object })
check勾选/取消勾选节点复选框时触发(res: { key, checked, checkedKeys })
expand展开或折叠节点时触发(res: { key, expanded })
update:selectedKeyv-model:selectedKey 双向绑定更新(key: String | Number)
update:checkedKeysv-model:checkedKeys 双向绑定更新(keys: Array)
update:expandedKeysv-model:expandedKeys 双向绑定更新(keys: Array)

插槽说明 (Slots)

插槽名说明作用域参数
node自定义节点渲染模板插槽{ node: object, isLeaf: boolean, expanded: boolean }

基于 MIT 协议开源发行

H5 模拟器 (tree)☀️🔄