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件を見るIT用語: async/awaitとは|非同期処理をわかりやすく書く構文
Promiseベースの非同期処理をまるで同期処理のように書けるasync/awaitの仕組みとエラーハンドリングを解説。
ESLint
JavaScriptとTypeScriptのコードを静的解析し、潜在的なバグや規約違反を検出するリンター。プロジェクト全体で一貫したコードスタイルを強制し、コードレビューの負担を軽減する。
SPA(シングルページアプリケーション)
ページ遷移時にブラウザをリロードせず、JavaScriptで動的にコンテンツを更新するWebアプリのアーキテクチャ。React・Vue・Angularで実装されることが多い。
IT用語: SOLID原則とは|オブジェクト指向設計の5つの基本原則
保守性の高いソフトウェア設計のためのSOLID原則(単一責任・開放閉鎖・リスコフ置換・インターフェース分離・依存性逆転)を解説。
Rust (ラスト)
「処理の速さ」と「メモリの安全性(バグの出にくさ)」を両立させた、世界で最もプログラマーに愛されている次世代言語。
Jest(ジェスト)
MetaがReact向けに開発したJavaScript/TypeScriptのテストフレームワーク。ゼロ設定で動作・スナップショットテスト・モック機能を標準搭載し、フロントエンドテストのデファクトスタンダード。