跳到主要内容

API 参考

核心: TreeNode<TMetadata>​

interface TreeNode<TMetadata = unknown> {
id: string;
name: string;
order?: number;
children?: TreeNode<TMetadata>[];
metadata?: TMetadata;
}

适配器​

buildOpenApiTree(document, options?)​

构建 OpenAPI 导航树。

选项类型默认值说明
showInternalbooleanfalse启用时显示带 x-internal 或 x-scalar-ignore 标记的节点
showComponentsbooleantrue显示组件部分
showWebhooksbooleantrue显示 Webhook
defaultExpandDepthnumber2默认展开深度

导航优先级:OAS 3.2 原生嵌套标签 → x-tagGroups → 扁平标签。

buildSchemaTree(schema, options?)​

选项类型默认值说明
maxDepthnumber8最大嵌套深度
showDeprecatedbooleantrue显示已弃用的属性
expandCombinatorsbooleantrue展开 oneOf/anyOf/allOf
showArrayItemsbooleantrue展开数组元素

buildDocTree(document, options?)​

Stripe 风格的文档树,每个操作可展开以显示参数、请求体和响应。

React <Tree /> 组件​

主要属性​

属性类型默认值说明
nodesTreeNode[]必填要渲染的根节点
onSelect(node) => void—选中节点时调用
searchablebooleanfalse显示搜索框
defaultExpandDepthnumber1初始展开深度
showExpandAllbooleanfalse全部展开/折叠开关
draggablebooleanfalse启用拖放排序
onReorder(result: ReorderResult) => void—在同一父节点下重新排序时调用
onMove(nodes, movedNode, targetParentId) => void—跨层级移动时调用
canDrag(node) => boolean—控制哪些节点可拖动
canDrop(dragged, target, position) => boolean—控制允许的放置目标
contextMenuItems(node) => ContextMenuItem[]—右键菜单项
onPatch(ops, context) => void—重新排序时产生的 RFC 6902 补丁操作
maxHeightnumber | string—出现滚动前的最大高度
size"xs" | "sm" | "md""sm"尺寸规格

命令式句柄(通过 ref)​

方法说明
expandAll()展开所有节点
collapseAll()折叠所有节点
expandToDepth(depth)展开至指定深度
getExpandedIds()获取当前展开节点的 ID
getSelectedNode()获取当前选中的节点
scrollToNode(id)将节点滚动到可视区域
locateNode(predicate)查找节点、展开祖先、选中并滚动到可视区域

核心工具函数​

函数说明
findNode(nodes, id)按 ID 查找节点
findPath(nodes, id)查找从根节点开始的完整路径
getLeaves(nodes)获取所有叶节点
countNodes(nodes)统计所有节点
filterTree(nodes, { query })根据搜索条件筛选
flattenTree(nodes)按前序遍历展开为列表
updateNode(nodes, id, updater)不可变地更新节点
removeNode(nodes, id)不可变地删除节点