组件解剖

组件把面向作者的想法与它的实现连接起来。对一块榜单而言,那个想法可能是「先在各自的行上介绍选手,再把图标移动到名次位置」——输入表达关系,代码提供绘制与运动。

实现角色

角色职责
清单与类型声明包提供的值、Producer、输入与输出
Surface读取作者元素并解析其显式输入
Fragment描述把这些输入连到输出的操作与依赖
Producer执行声明的计算
值与样式助手校验输入、应用文档化默认值、解码被接受的 Recipe 属性
排期与绘制组织事件并在每一帧绘制场景
激活发布贡献

这些角色怎么组织成文件

按组件规模决定拆分粒度:小图形可以把 Surface、Fragment、Producer 放在同一文件;带持久状态与 Studio 联动面板的组件(例如榜单)通常会拆成多个模块。

从哪开始

  • — 先看新增作者包拿一个可构建的完整例子
  • — 榜单是更丰富的示例:语义事件、持久状态与 Studio 联动面板

FAQ

必须全部角色都实现吗?

不必。最小组件只需要清单、Surface 与绘制路径。

组件能带状态吗?

能。语义事件与持久状态是榜单这类组件的常见需求。

能提供编辑控件吗?

能,通过 Studio 联动面板(Companion)声明时间线对象与可编辑属性。

继续阅读