In the preview documentation here,有以下代码:
class MyElement extends Polymer.Element {
static get is() { return 'my-element' }
我的问题是:第一行中的MyElement
位是否必须与第二行中的my-element
位匹配?第一位是否以任何方式受到第二位的约束?反之亦然?
答案 0 :(得分:4)
不,类名与您从is
getter返回的元素名称无关。例如,该类可以命名为XFoo
,元素名称为my-app
:
class XFoo extends Polymer.Element {
static get is() { return 'my-app'; }
}
customElements.define(XFoo.is, XFoo);
该课程也可以是匿名的:
customElements.define('my-app', class extends Polymer.Element {
static get is() { return 'my-app'; }
});
customElement.define()
在Web Components Custom Elements spec中定义,这可能就是为什么它没有在Polymer 2.0-preview Wiki中解释的原因。规范没有对类名施加任何规定。根据规范和MDN中的示例,类名通常至少类似于元素名称(可能具有可维护性)。
MDN实例: save-button
vs SaveBtn
:
var MySaveBtn = document.registerElement("save-button", SaveBtn);
自定义元素规范实例: auto-embiggened
vs AutoEmbiggenedImage
:
customElements.define("auto-embiggened", AutoEmbiggenedImage, { extends: "img" });