【ウェブコンポーネンツ】

Web Components とは?

公開:
💡 フレームワークいらずの「純正HTML部品」、ブラウザが直接わかる言葉で作るコンポーネント
📌 このページのポイント
Web Components の3本柱 Web Components ブラウザ標準 API 群 Custom Elements <my-card> など 独自タグを定義 Shadow DOM CSS・DOMをカプセル化 外部スタイルに影響されない HTML Template <template> タグ HTML の雛形を定義 フレームワーク非依存 React / Vue / どこでも使える ライブラリ縛りなし ブラウザが直接理解 スタイルの独立性 Shadow DOMで外部CSSから隔離 コンポーネント内のスタイルが 外に漏れない 再利用性 一度作れば複数プロジェクト で使い回せる デザインシステムに最適
Web Componentsを構成する3本柱とその特長
ひよこ ひよこ
ペンギン先生、Web ComponentsってReactとかVueと何が違うの?
ペンギン先生 ペンギン先生
ReactVueJavaScriptライブラリだけど、Web ComponentsブラウザそのものがネイティブでサポートしてるWeb標準なんだよ。
ひよこ ひよこ
ブラウザが直接わかるってことなの?
ペンギン先生 ペンギン先生
そうだよ。Custom Elementsで<my-card>みたいな独自タグを定義して、Shadow DOMCSSカプセル化して、<template>でHTMLの雛形を持つ——この3つがセットでWeb Componentsと呼ばれてるんだ。
ひよこ ひよこ
3つ全部使わないといけないの?
ペンギン先生 ペンギン先生
必ずしも全部じゃなくていいよ。Custom Elementsだけ使うこともできるし、組み合わせ方は自由なんだ。
ひよこ ひよこ
フレームワークが要らないのに、Reactとかのほうが人気があるのはなんでなの?
ペンギン先生 ペンギン先生
状態管理ルーティングエコシステムの充実度でフレームワークに軍配が上がることが多いからだね。ただWeb Componentsで作ったパーツはReactでもVueでもどこでも使えるから、汎用ライブラリを作るときにすごく便利なんだよ。
ひよこ ひよこ
「どこでも使えるパーツ」として強みがあるんだね!
ペンギン先生 ペンギン先生
そのとおり。デザインシステムUIライブラリWeb Componentsで書いておけば、特定フレームワークへの縛りがなくなるんだ。フレームワークが流行り廃りする中でも長く使えるのが大きな魅力だよ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Web Components」って出てきたら「ブラウザ標準のコンポーネント作成API群」と思えればだいたいOK!
📖 おまけ:英語の意味
「Web Components」 = Webコンポーネント
💬 Web(ウェブ)のComponents(部品・構成要素)。ブラウザが直接理解できる標準の部品づくりの仕組みだよ
← 用語集にもどる