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件を見るC# (シーシャープ)
Microsoft社が開発した、エンタープライズ(企業向け)システムからゲーム開発(Unity)まで広く使われる万能言語。
Prettier(コードフォーマッター)
コードを自動的に整形するオピニオネイテッドなフォーマッター。JavaScript・TypeScript・CSS・HTML・JSON・Markdownに対応し、チームのコードスタイル論争を終わらせる。
Go / Golang (ゴー言語)
Google社が開発した、処理速度が超絶爆速で、大量のアクセスに強い現代的なプログラミング言語。
IT用語: 型安全性(Type Safety)とは|TypeScriptが防ぐバグの種類
コンパイル時に型の不一致を検出する「型安全性」の概念と、JavaScriptからTypeScriptへの移行がなぜ有効なのかを解説。
ヘッドレスCMS
表示用フロントエンド(ヘッド)を持たず、コンテンツ管理とAPIによるデータ提供に特化したCMS。Next.js・Astro等の任意のフロントエンドと組み合わせてJAMstack構成を実現する。
IT用語: DRY原則とは|「繰り返しを避けよ」というプログラミングの鉄則
Don't Repeat Yourself(DRY)原則の意味と、WET(重複だらけ)なコードが引き起こす問題と対処法を解説。