Web Components
ブラウザネイティブの技術でカプセル化された再利用可能なUIコンポーネントを作成する仕様。Custom Elements・Shadow DOM・HTML Templatesの3つの技術で構成され、フレームワーク非依存で動作する。
Web Componentsとは?
Web Componentsは、独自のHTMLタグ(Custom Elements)を作成し、スタイルと動作をカプセル化できるブラウザネイティブのコンポーネント仕様です。ReactやVueなどのフレームワークに依存せず、あらゆるWebアプリで再利用できます。
3つの構成技術
| 技術 | 説明 |
|---|---|
| Custom Elements | 独自のHTMLタグを定義(<my-button>等) |
| Shadow DOM | コンポーネント内のDOM・CSSを外部から隔離 |
| HTML Templates | <template>タグで再利用可能なHTMLを定義 |
基本的な実装例
// カスタム要素の定義
class MyButton extends HTMLElement {
connectedCallback() {
this.innerHTML = `
<button style="background: #1ebbbd; color: white; border: none; padding: 8px 16px; border-radius: 4px; cursor: pointer;">
${this.getAttribute('label') || 'クリック'}
</button>
`;
}
}
// ブラウザに登録
customElements.define('my-button', MyButton);
<!-- 使用方法 -->
<my-button label="送信"></my-button>
React・Vueとの違い
| 項目 | Web Components | React / Vue |
|---|---|---|
| 依存関係 | なし(ブラウザ標準) | ランタイムライブラリが必要 |
| 状態管理 | 手動 | 宣言的・便利 |
| エコシステム | 小さい | 非常に豊富 |
| 再利用範囲 | どんな環境でも | 同フレームワーク内 |
まとめ
Web Componentsはデザインシステムの共通UIコンポーネントをフレームワーク横断で配布したい場合に有力な選択肢です。Lit(Googleの軽量ライブラリ)と組み合わせると開発体験が改善されます。
関連する用語 (プログラミング)
全33件を見るESLint
JavaScriptとTypeScriptのコードを静的解析し、潜在的なバグや規約違反を検出するリンター。プロジェクト全体で一貫したコードスタイルを強制し、コードレビューの負担を軽減する。
Jest(ジェスト)
MetaがReact向けに開発したJavaScript/TypeScriptのテストフレームワーク。ゼロ設定で動作・スナップショットテスト・モック機能を標準搭載し、フロントエンドテストのデファクトスタンダード。
IT用語: ソフトウェアテストの種類|単体・結合・E2Eテストの違い
ユニットテスト・結合テスト・E2Eテストの役割とテストピラミッドの考え方を解説。
IT用語: クロージャ(Closure)とは|関数が変数を「覚える」仕組み
関数が定義された時点のスコープの変数を参照し続けるクロージャの仕組みとカウンターなどの実用例を解説。
PWA(プログレッシブウェブアプリ)
Service WorkerやWeb App Manifestを使い、Webアプリにネイティブアプリに近い体験を提供する技術。オフライン動作・ホーム画面への追加・プッシュ通知が実現できる。
IT用語: async/awaitとは|非同期処理をわかりやすく書く構文
Promiseベースの非同期処理をまるで同期処理のように書けるasync/awaitの仕組みとエラーハンドリングを解説。