iter(g31): 新增 tree 树形组件
This commit is contained in:
+28
-1
@@ -1,6 +1,6 @@
|
||||
# @ui-arch 组件库 Agent 文档(无图形版)
|
||||
|
||||
> 自动生成于 2026-10-26T03:40:46.247Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
|
||||
> 自动生成于 2026-10-26T03:41:59.549Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
|
||||
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
|
||||
|
||||
## 快速上手
|
||||
@@ -1063,6 +1063,32 @@ const i = signal(0); carousel({ items: [h('div', null, 'A'), h('div', null, 'B')
|
||||
|
||||
现场演示:apps/docs/demo.html#sec-carousel
|
||||
|
||||
### tree — 树形 Tree
|
||||
|
||||
参数:
|
||||
|
||||
- nodes(必填):TreeNode[] —— 根节点列表,每项 { key, label, children?, disabled? }
|
||||
- expanded:Signal<string[]> —— 展开的 key 集合;不传则内部维护
|
||||
- selected:Signal<string> —— 选中 key 信号;不传则内部维护
|
||||
- defaultExpandAll:boolean —— 首屏展开全部分支;缺省 false
|
||||
- onSelect(回调):(node: TreeNode) => void —— 选中回调:点击标签或 Enter/空格触发
|
||||
|
||||
示例:
|
||||
|
||||
```
|
||||
const sel = signal(''); tree({ nodes: [{ key: 'src', label: 'src', children: [{ key: 'ui', label: 'ui' }] }], selected: sel, onSelect: (n) => console.log(n.key) })
|
||||
```
|
||||
|
||||
手把手:
|
||||
|
||||
1. 节点树用 { key, label, children } 描述,key 唯一即可(选中与展开都按 key 记)
|
||||
2. 传 selected 信号即可外部受控;不传则组件内部维护选中态
|
||||
3. 点箭头只展开/收起,点标签才选中;叶子节点箭头位置留空以对齐
|
||||
4. 键盘 Enter/空格 选中、→ 展开、← 收起;disabled 节点点击与键盘都不响应
|
||||
5. defaultExpandAll 首屏展开全部分支(外部已给 expanded 初值时以外部为准)
|
||||
|
||||
现场演示:apps/docs/demo.html#sec-tree
|
||||
|
||||
API 速览:
|
||||
|
||||
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用
|
||||
@@ -1107,6 +1133,7 @@ API 速览:
|
||||
- statistic(props):统计数值,标题 + 大号数字 + 前后缀 + 环比趋势,value 变化时 rAF 滚动过渡(400ms easeOutCubic),减弱动效偏好下直落终值
|
||||
- list(props):列表,header/footer 外壳 + 条目 avatar/title/description/extra,onItemClick 让条目可点击,items 为空回落空状态
|
||||
- carousel(props):轮播,items 横排位移,指示点/箭头/←→ 键切换,autoplay 毫秒自动前进且悬停暂停,index 信号可外部受控
|
||||
- tree(props):树形,递归节点 + 箭头展开/收起 + 点选节点,键盘 Enter 选中、→ 展开、← 收起,禁用节点不响应
|
||||
|
||||
一行用法:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user