跳到主要内容
前端术语库

树形控件

Tree

UI 组件也叫:树、树形菜单、目录树、TreeView

一句话:用可以逐级展开的缩进列表展示有上下级关系的数据,比如组织架构、文件夹目录、分类。

详细解释

树形控件把数据画成一层层缩进的列表:有下级的节点前面有一个小三角,点击展开后露出子节点,子节点再往右缩进一格。它还能加复选框做多选(勾选父节点会连带勾选全部子节点),也能支持拖拽调整层级、展开时再加载子节点。典型场景:文件管理器左侧的目录、部门人员选择、权限配置。

相似组件的区别:级联选择 是一个下拉框,按「省→市→区」一列一列往右选,最后选出一个值,适合表单;穿梭框 是左右两个列表,把项目从左边移到右边,适合从平铺的列表里挑一批;树形控件则把整个层级完整摊在页面上,适合浏览结构或批量勾选多个层级的节点。

示例

灰度线框示意,只表达结构,不代表具体视觉风格。

怎么跟 AI 说

可以直接贴给 Cursor、Claude Code 等工具,把里面的业务内容换成你自己的。

左侧放一个部门树形控件,按「公司 > 部门 > 小组」三级缩进显示,每个节点前有展开箭头和复选框,勾选父节点时自动勾选所有子节点,部分子节点被选中时父节点显示半选状态;顶部有搜索框,输入后高亮匹配节点并自动展开其上级。

结构与适用场景

结构描述

由逐级缩进的节点组成,每个节点有展开收起箭头、可选的复选框或图标和节点名称。

适用场景

  • 数据有明确的上下级关系,比如组织架构、文件夹、商品分类
  • 需要在层级数据里一次勾选多个节点,比如分配权限
  • 用户需要浏览整体结构并逐级展开查看

不适用场景

  • 表单里只需要沿层级选出一个值,比如选省市区,用级联选择更紧凑
  • 数据没有层级,只是一长串平铺项目,用列表或穿梭框
  • 层级只有一层,用普通列表或复选框组就够

常见坏用法

  • 默认把几千个节点全部展开,页面卡顿且找不到重点
  • 只能点小三角展开,点节点名称没有反应
  • 勾选父节点后子节点不联动,也没有半选状态

识别特征

  • 一列逐级向右缩进的文字项
  • 每项前面有朝右或朝下的小三角
  • 常带文件夹图标或复选框,层级之间有竖向连接线

DOM 线索

插件本地识别时匹配的 CSS 选择器(标签、ARIA role、常见组件库 class)。

  • [role="tree"]
  • .ant-tree
  • .el-tree
  • [class*="MuiTreeView-root"]
  • [class*="MuiSimpleTreeView-root"]
  • [class*="MuiRichTreeView-root"]
  • .arco-tree
  • .t-tree
  • .n-tree