MENU

Web Components — 標準仕様で組む再利用可能UI部品

Web Components アイキャッチ
Web Components

Web Componentsは、フレームワークに依存せず再利用可能なUI部品を作るためのブラウザ標準仕様群の総称です。Custom Elementsで独自タグを定義し、Shadow DOMでスタイルとマークアップを内部に閉じ込め、HTML Templatesで初期テンプレートを用意する、という3本柱で構成されています。2011年にGoogleのアレックス・ラッセル氏が原案を発表し、2018年前後にW3CおよびWHATWGの標準として主要ブラウザに揃って実装されました。ReactやVueなどのフレームワーク外でも動く点が最大の特徴です。

目次

この記事の目次

  1. 三位一体の標準仕様
  2. 2011年Polymerから標準化まで
  3. デザインシステムでの真価
  4. Reactとの位置関係
  5. まとめ

三位一体の標準仕様

三位一体の標準仕様

Web Componentsという用語は実際には3つの異なる仕様の集合体を指します。1つ目のCustom Elementsは、JavaScriptクラスをcustomElements.define('my-card', MyCard)のように登録することでといった独自HTMLタグを使えるようにする仕組みです。ライフサイクルコールバック(connectedCallback、disconnectedCallback、attributeChangedCallback)を実装することでDOMへの挿入や属性変更にフックして処理を書けます。

2つ目のShadow DOMは、コンポーネントの内部マークアップと外部ページを完全に隔離する境界を作る仕組みで、「外のCSSが内側に漏れない」「内側のIDが外と衝突しない」という強いカプセル化を提供します。3つ目のHTML Templates(