组件解剖
组件把面向作者的想法与它的实现连接起来。对一块榜单而言,那个想法可能是「先在各自的行上介绍选手,再把图标移动到名次位置」——输入表达关系,代码提供绘制与运动。
实现角色
| 角色 | 职责 |
|---|---|
| 清单与类型 | 声明包提供的值、Producer、输入与输出 |
| Surface | 读取作者元素并解析其显式输入 |
| Fragment | 描述把这些输入连到输出的操作与依赖 |
| Producer | 执行声明的计算 |
| 值与样式助手 | 校验输入、应用文档化默认值、解码被接受的 Recipe 属性 |
| 排期与绘制 | 组织事件并在每一帧绘制场景 |
| 激活 | 发布贡献 |
这些角色怎么组织成文件
按组件规模决定拆分粒度:小图形可以把 Surface、Fragment、Producer 放在同一文件;带持久状态与 Studio 联动面板的组件(例如榜单)通常会拆成多个模块。
从哪开始
- — 先看新增作者包拿一个可构建的完整例子
- — 榜单是更丰富的示例:语义事件、持久状态与 Studio 联动面板
FAQ
必须全部角色都实现吗?
不必。最小组件只需要清单、Surface 与绘制路径。
组件能带状态吗?
能。语义事件与持久状态是榜单这类组件的常见需求。
能提供编辑控件吗?
能,通过 Studio 联动面板(Companion)声明时间线对象与可编辑属性。
继续阅读
- — 新增作者包
- — Studio 联动面板
- — 约定
- — 英文原页