数据组件版本 0.1.0

TreeView 树视图

浏览并选择具有父子层级的节点,同时支持展开和收起分支。

使用概览

适合使用

  • 文件目录、组织结构或分类体系需要保留层级关系时。

不建议使用

  • 项目之间没有父子关系,或层级过深需要专门导航页面时。

真实示例

文件目录树

默认展开源码目录并显示其中的文件节点。

正在加载示例…

安装

本地候选警告Registry 地址仅指向当前本地文档站;npm 包也只用于本地候选验证,尚未公开发布。
pnpm dlx shadcn@4.16.0 add http://127.0.0.1:3000/r/tree-view.json

基础用法

导入

import { TreeView } from "@richardqiu/quartz/tree-view";

JSX

<TreeView aria-label="文件目录" nodes={[{ id: "src", label: "src", children: [{ id: "app", label: "app.tsx" }] }]} defaultExpandedIds={["src"]} expandLabel={(node, expanded) => `${expanded ? "收起" : "展开"}${node.label}`} />

状态与控制摘要

默认
键盘焦点可见
已选择
加载中
已禁用
label · textactive · boolean

API 参考

属性类型默认值说明
nodesreadonly TreeNode<Value>[]必填提供具有唯一标识、标签与可选子节点的层级数据。
selectionMode"single" | "multiple""single"决定树中选择一个节点还是多个节点。

组合结构

  1. 01TreeView

键盘约定

  • 方向键遍历可见层级,Home 与 End 移到边界,Enter 选择,左右键折叠或展开。

可访问性契约

  • 漫游焦点遵循 WAI-ARIA tree 模式。
  • 每个节点必须具有稳定、唯一且非空的 ID。