【かすたむえれめんつ】
Custom Elements とは?
💡 自分だけの「HTMLタグ」を定義する
📌 このページのポイント
のような独自HTMLタグを定義できる - Web Componentsの3本柱の1つ(Shadow DOM、HTML Templates と併用)
- フレームワーク非依存で、どのプロジェクトでも使える
- connectedCallback等のライフサイクルフックを持つ
どうやって作るの?
class MyComponent extends HTMLElement { connectedCallback() { this.innerHTML = '
Hello!
'; } } で定義して、customElements.define('my-component', MyComponent)で登録。あとはライフサイクルは?
実務で使うライブラリは?
Lit(Google製)がCustom Elements開発のデファクト。デコレーターでリアクティブプロパティを簡潔に定義でき、テンプレートはhtml tagged templateで書く。StencilJS(Ionic製)はTypeScript+JSXでCustom Elementsを作れる。どちらもビルドして配布すればフレームワーク問わず使えるよ
📖 おまけ:英語の意味
「Custom Elements」 = カスタム要素
💬 Custom(独自の)Elements(要素)。HTMLの標準タグと同じように使える独自タグだよ