Aurelia 视图模型 class 命名

Aurelia view-model class naming

在 Aurelia 中,导出的视图模型 class 名称何时重要? Html 和 JS 文件是通过名称链接的,但是里面的 class 的名称似乎无关紧要。

默认情况下,加载程序似乎首先抓取导出的 class 作为视图模型,而不管 class 的名称。它确实识别 'ValueConverter' 后缀,但除了第一个 class 导出的胜利。

这是约定俗成的吗?

对于视图模型来说,命名根本不重要。但是,视图模型应该是不使用约定或提供元数据的模块的唯一导出。通常,它是唯一的出口,但您也可以拥有其他出口,前提是它们提供元数据或使用常规名称。

导出名称仅与视图资源有关:自定义元素、附加行为、模板控制器和值转换器。当您将资源导入视图时,编译器需要知道它是什么类型的资源。您可以使用元数据提供此信息,也可以依赖命名约定。因此,如果 class 被命名为 FooCustomElement,它将知道该导出是一个 CustomElement。与 AttachedBehavior、TemplateController 和 ValueConverter 相同。

此外,如果视图资源不提供元数据且不遵循命名约定,编译器将假定它是自定义元素。