【问题标题】:What is the scope of HTML custom element names?HTML 自定义元素名称的范围是什么?
【发布时间】:2021-01-29 19:15:09
【问题描述】:

我正在学习 HTML Web 组件。我了解自定义元素是通过 window.customElements.define() 方法注册的。并且可以选择附加一个影子 DOM。

我的问题是,自定义元素是否共享一个全局范围,就像全局变量一样?对窗口对象的引用使它看起来如此。或者可以将它们限定为影子 DOM。

如果它是一个全局范围,如何避免自定义元素名称之间的冲突?说一个本地的<super-button> vs library 1's <super-button> vs library 2's <super-button>。感谢您的指导。

【问题讨论】:

标签: javascript html dom web-component


【解决方案1】:

根据NotSupportedErrorin the docs的全局范围

CustomElementRegistry 已包含同名条目 或相同的构造函数(或已定义),或扩展 已指定并且它是有效的自定义元素名称,或者 extends 是 指定但它试图扩展的元素是未知的 元素。

避免冲突的最佳方法是练习命名空间 - 您的所有组件都将以 mycustomprefix-component-name 开头。

Naming web components 还建议使用命名空间。

【讨论】:

  • 取决于您要创建的内容;如果你创建了<svg-icon>,那么你不应该关心命名冲突,每个人都应该使用你的 'the best' 组件。如果您正在创建一个设计系统,那么一个好的前缀是您营销的一部分。
猜你喜欢
  • 2013-07-18
  • 2011-01-30
  • 2021-10-15
  • 2021-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多