跳转到主要内容
registerComponent 可修改命名的内置 Compose 目标 — 让你从 Script Mod 中替换、包装或隐藏 Aether 的原生 UI 元素。与在不打扰现有 UI 的情况下添加内容的 surfaces 不同,component 注册会直接介入目标的渲染管线,并可完全移除或重组它。

API 签名

registerComponent 返回一个清理函数。调用它可移除 component 注册,并将目标恢复为先前状态。

可用目标

ComponentDefinition 字段

id
string
此 component 注册的唯一标识符。Aether 用它跟踪同一扩展的注册。若省略,Aether 会根据目标与注册顺序生成一个。
mode
string
"before""after""replace""wrap""hide" 之一。决定此注册如何与目标组件及其他注册交互。默认为 "wrap"。见下方 模式语义
order
number
相对其他针对同一组件的注册的排序优先级。对于 replacehide 模式,order 最高的注册起决定作用。对于 wrapbeforeafter,order 控制层叠顺序。省略时默认为 0
render
function
返回 ui 节点树的工厂函数。除 "hide" 外所有模式请使用 rendertreehide 会移除组件且不在其位置渲染任何内容。
tree
object
省略 render 时使用的静态 ui 节点树。

模式语义

示例

Replace

Wrap

使用 ui.core() 在布局中放置被包裹的内容:

Hide

来自不同扩展的多个 wrapper 会围绕单一中心组合 — 胜出的 replace 注册,或在无 replace 时的原生组件。Native Mod 组件会完整包裹 Script component 管线,因此 Native 的 replace 对任何 Script 级替换都具有决定性。