2016-10-20 5 views
1

In the preview documentation hereは、次のコードビットがあります:ポリマー2.xの:ES6クラスベースの構文、要素定義

class MyElement extends Polymer.Element { 
    static get is() { return 'my-element' } 

私の質問は次のとおりです。最初の行にMyElementビットはmy-elementと一致する必要がありません2行目のビット?どのようにして第1のビットが第2のビットに制約されていますか?またはその逆?

答えて

4

いいえ、クラス名は、isゲッターから返される要素名とは関係ありません。例えば、クラスが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-buttonSaveBtn VS:

    var MySaveBtn = document.registerElement("save-button", SaveBtn); 
    
  • カスタム要素スペックインスタンス:auto-embiggenedAutoEmbiggenedImage

    customElements.define("auto-embiggened", AutoEmbiggenedImage, { extends: "img" }); 
    
+0

これがどのように機能するかを説明する良い文書を指すことができますか?それを説明しないために私が参照したPolymerドキュメント。 – Mowzer

+0

カスタムエレメント仕様へのリンクが追加されました。更新された回答をご覧ください。 – tony19

関連する問題