本参考说明作者可以有意识依赖的 AUP tree 合同;它不会把每一条内部 session message 都写成长期的编写 API。
node 字段
AUP node 必须有 id 与 type。当前公开 node 形状还包含以下可选字段:
| 字段 | 编写时的作用 | 边界 |
|---|---|---|
props | 静态呈现或输入属性 | 有哪些合法 key 取决于 type |
src | 面向读取的数据 source | 它本身不授予写权限 |
bind | 受支持输入流程中的普通读写绑定 | 接收 node 与目标仍决定是否支持 |
propBind | 把点分属性路径交给 AFS 路径管理的 server 端绑定 | 只用于所属组件明确声明的地方 |
state | 随 node 提供的应用状态 | 不要把 renderer 的短暂本地 UI 当作普遍持久状态 |
events | 有名字的交互及其动作 | event 名称由 node/renderer 合同决定 |
children | 嵌套的语义 node | 某个 type 可以限制子项形状 |
testId | 稳定的测试标识 | 它不是给读者看的文案,也不是路由身份 |
type 表达的是语义能力,不是某个 HTML tag 或原生 widget。把某项能力写成跨设备前,先看 Primitive 类型分类与证据。
event 与导航
在当前 DSL 中,-> 是 button 与 action 的 click shorthand;其他 node 使用明确的 on <event> -> 形式。页面变更使用规范的 root-state 更新:
button open "Open" primary -> page details它会编译成 "_root" target 与 set.page。较早的顶层 page: 形状只为兼容保留,不是新 source 的首选合同。
message:使用正确的抽象层
交互式投递先给出 render tree,随后可以使用带 tree version 的 patch。它们让 session 保持目标表面同步;作者通常通过 node、state 与 event 表达意图,而不是手写 patch transport。静态 Web Device 页面可以直接渲染受支持的 tree,不需要打开交互 session。
任务导向例子见 Event、state 与 binding;更新边界见 Patch、scene 与 capability。