【しゃどうどむ】
Shadow DOM とは?
💡 CSSが「外に漏れない」カプセル化されたDOM
📌 このページのポイント
なんでShadow DOMが必要なの?
仮想DOMとは違うの?
どうやって使うの?
JavaScriptでelement.attachShadow({mode: 'open'})を呼ぶとShadow Rootが作られる。その中にHTMLを追加すると、外部のDOMやCSSから隔離される。modeがopenなら外部からshadowRootプロパティでアクセス可能、closedなら完全に非公開。通常はopenで十分だよ
フレームワークとの相性は?
Lit(Google製)はShadow DOMを全面活用した設計。Vue3やAngularもWeb Componentsとしてのエクスポートに対応。ReactはShadow DOM内のイベントハンドリングに課題があったけど改善が進んでいる。マイクロフロントエンドで異なるフレームワークを混在させるときにShadow DOMが威力を発揮するよ
📖 おまけ:英語の意味
「Shadow Document Object Model」 = 影のDOM
💬 Shadow(影)のように隠れたDOMツリー。外からは見えにくいけど確かに存在するよ