【かすたむえれめんつ】
Custom Elements とは?
最終更新:
💡 独自のHTML要素を登録して、ブラウザに振る舞いを教える
独自のHTML要素をJavaScriptで定義・登録できるWeb標準の仕組み。登録した要素をHTMLやDOM APIから使い、接続や属性の変化などに応じて処理できる。Web Componentsの技術の一つで、Shadow DOMは必要に応じて組み合わせる。
📌 このページのポイント
- 独自の要素クラスを定義し、customElements.define()で登録する
- 独自タグ名は小文字で始まり、ハイフンを含むなどの規則に従う
- 接続・切断・監視した属性の変化などでコールバックが呼ばれる
- Shadow DOMやHTML Templatesは組み合わせられるが必須ではない
どうやって作るの?
ライフサイクルは?
代表的にはconnectedCallbackが文書への接続、disconnectedCallbackが切断、adoptedCallbackが別の文書への移動に対応する。attributeChangedCallbackはobservedAttributesで指定した属性を監視するよ。接続は繰り返されることがあるし、状態を保つ移動ではconnectedMoveCallbackを使う仕組みもあるんだ。
Shadow DOMも自動で付くの?
登録するだけでは付かないよ。通常のDOMを使う実装もできる。内部のDOMやスタイルを分けたい場合には、attachShadow()などでShadow DOMを組み合わせるんだ。スタイルを分けることと、外部のコードから秘密を守ることは別だよ。
実務で使うライブラリは?
まとめ:ざっくりこれだけ覚えればOK!
「Custom Elements」って出てきたら「独自のHTML要素を定義・登録するWeb標準の仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Custom Elements」 = カスタム要素
💬 Custom(独自の)Elements(要素)。HTMLの標準タグと同じように使える独自タグだよ