【せんげんてきしゃどーどむ】
宣言的Shadow DOM とは?
公開:
💡 JavaScriptなしで「自分だけのスタイル空間」をHTMLで宣言する
📌 このページのポイント
- <template shadowrootmode="open">属性を使うだけでシャドウDOMをHTML上で宣言できる
- 従来のShadow DOMはJavaScript(attachShadow())必須だったため、SSRと相性が悪かった
- サーバーがHTMLを生成した時点でカプセル化が有効になり、JS読み込み前でもスタイルが崩れない
- Chrome 111+・Safari 16.4+・Firefox 123+で標準対応済みのWeb標準仕様
ペンギン先生、宣言的Shadow DOMって何なの?Shadow DOMとどう違うの?
普通のShadow DOMはJavaScriptで element.attachShadow() を呼び出さないと作れなかったんだよ。宣言的Shadow DOMは <template shadowrootmode="open"> というHTMLタグを書くだけでシャドウDOMが作れる仕組みだよ。
JavaScriptなしで書けるのは便利だけど、それがなぜ重要なの?
カプセル化ってどういう意味なの?
宣言的Shadow DOMを使うと、その問題が解決するんだね!
実際にどうやって書くの?
まとめ:ざっくりこれだけ覚えればOK!
📖 おまけ:英語の意味
「Declarative Shadow DOM」 = 宣言的Shadow DOM
💬 DOMをJavaScriptで命令的(imperatively)に操作するのではなく、HTMLタグで「宣言(declare)」するだけで動く仕組みからきているよ。