我想知道拥有@customElement('some-element')装饰器的目的究竟是什么?有什么好处? 通常当我想使用'some-element'时,我会在模板中添加它:
require(from='./some-element')
只是我们可以检查自定义属性是否附加到该元素并且该元素是否具有永久命名约定?
答案 0 :(得分:7)
@customElement(elementName)
装饰器显式设置Aurelia将在DOM中识别的自定义元素的名称
如果您没有指定元素名称,Aurelia将使用约定来计算元素的名称。惯例连字符(kebab案例)导出名称。
e.g。使用惯例
export class MyElement { } // the export name is "MyElement"
DOM中的:
<my-element>
<强> VS 强>
@customElement('hello-world')
export class MyElement {}
DOM中的:
<hello-world>
拥有这种显式命名有几个优点 - 其中之一就是您在代码中重构类名而无需更新应用程序中该自定义元素的所有用法。另一个是当您创建插件并希望确保最终用户不能通过更改Aurelia的约定来破坏您的自定义元素。通过明确,这不可能发生。
用于存放类型的文件的实际名称不相关,仅用于模块加载器查找/加载文件内容。