16 个版本
0.3.1 | 2023 年 10 月 25 日 |
---|---|
0.3.1-rc.1 | 2023 年 10 月 24 日 |
0.3.0-rc.2 | 2023 年 9 月 29 日 |
0.2.1 | 2023 年 5 月 6 日 |
277 在 数据结构 中排名
每月下载 205 次
用于 19 个 仓库(11 个直接使用)
135KB
3K SLoC
Ambient Element
Element 是为 Ambient 运行时提供的受 React 启发的虚拟树库。
它由 Ambient ECS 支持;虚拟树被转换为实际的实体和组件树。当树更新时,它会与之前的树进行比较,并且只应用差异到 ECS。这可以用于 UI,以及任何其他希望能够高效更新的树形数据结构。
Element 模块紧密模仿 React 并使用 Hooks。在这里,React 组件被称作 ElementComponent
(因为 Component
已被 ECS 使用)。这里有一些概念需要关注
Entities
(React:DOM 节点)只是普通的 ECS 实体,它们是此模块所有工作的“结果”。Element
(React:Element
)。这基本上是关于Entity
或ElementComponent
的描述。您可以在其上设置常规 ECS 组件(例如.set(translation(), ..)
)。Element 可以有子元素,这些子元素将被转换为实体的children()
组件。ElementComponent
(React:Component
)基本上是一个函数,它接受一些用户输入加上钩子(实例的局部状态)并从这个生成元素树。ElementComponent
可以相互包裹,例如,外层的ElementComponent
可以返回一个元素,内层的ElementComponent
只向其中添加一个组件。在这种情况下,只有一个元素,尽管有两个ElementComponent
。 (即ElementComponent
和Element
之间没有一一对应的关系)。ElementInstance
(React:Instance
)是Element
的实例(记住,Element
只是描述)。它有一个对其“拥有”的实体的引用。当使用钩子时,状态存储在ElementInstance
上。ElementTree
是ElementInstance
的树。
更多信息
依赖项
~6–51MB
~825K SLoC