组件拓扑

这些关系如下:

  • 组件实例树:描述组件实例如何组合在一起(其父子关系)。
  • 功能路由图:描述组件实例如何获得使用其他组件实例发布的功能的权限(其提供方-使用方关系)。

组件实例

如果上下文清晰,您通常可以互换使用“组件”和“组件实例”这两个术语。例如,“启动组件实例”比“启动组件”更精确,但您可以轻松推断出“启动组件”需要先创建该组件的实例,然后才能启动实例。

组件由网址标识,组件实例由名称标识。因此,同一组件的不同实例共享相同的网址,但具有不同的名称。

组件实例树

组件实例树表达了组件如何组合在一起以制作更复杂的组件。

使用分层组合,父组件创建其他组件的实例,这些组件称为其子组件。子实例属于父实例,并依赖父实例为其提供运行所需的功能。同时,父项通过功能路由获得对其子项公开的功能的访问权限。

可以通过以下两种方式创建子项:

  • 静态:父组件在其自己的组件声明中声明子项的存在。如果在父项软件的更新版本中移除子项声明,系统会自动销毁子项。
  • 动态方式:父项使用 Realm 框架协议将子项添加到父项声明的组件集合中。父项会以类似的方式销毁子项。


组件实例树示意图

莫尼克斯

名称使用拓扑路径标识组件树中的特定组件实例。名称有三种类型,具体取决于名称的使用方式及其描述的关系类型:绝对、相对和子。

如需了解详情,请参阅名称相关文档


带有名称的组件实例树示意图

领域

realm 是组件实例树的一个子树。每个领域都以一个组件实例作为根,并且包含该实例的所有子项及其后代。换言之,领域表达了组件实例的分层组合

领域是组件拓扑中重要的封装边界。每个领域的根都会获得某些权限来影响组件的行为,例如:

  • 声明功能如何流入、流出和流入领域。
  • 绑定到子级组件以访问其功能。
  • 创建和销毁子组件。

有关详情,请参阅 realms 文档


组件领域示意图

封装

组件充当封装边界。除非通过 expose 声明明确允许,否则权能无法转义组件的 realm

子女会永远依赖于父母;他们不能更改父亲,并且寿命也不能超过父母。当父级被销毁时,它的所有子级也会被销毁。

该模型类似于面向对象的编程语言中的组合

有关详情,请参阅 realms 文档


组件实例封装示意图

功能路由图

功能路由图描述了组件如何获得使用组件实例树中其他组件公开和提供的功能的访问权限。为了使组件实例提供的功能可供使用方组件实例使用,它们之间必须具有功能路由路径。此类功能路由由组件声明中的 useofferexpose 声明确定。

如需了解详情,请参阅功能路由文档


功能路由示意图