Sobes.tech
Middle

Czym jest Shadow DOM?

sobes.tech AI

Odpowiedź od AI

Shadow DOM — to standard sieciowy, który umożliwia enkapsulację drzewa DOM i stylów wewnątrz komponentu, izolując je od reszty dokumentu.

Główne koncepcje:

  • Shadow tree: własne drzewo DOM, podłączone do elementu.
  • Shadow boundary: granica oddzielająca Shadow DOM od głównego dokumentu.
  • Shadow host: element, do którego dołączony jest Shadow DOM.
  • Shadow root: węzeł korzenia Shadow tree.

Zalety:

  • Izolacja stylów: style zdefiniowane wewnątrz Shadow DOM nie wpływają na elementy spoza niego, i odwrotnie.
  • Izolacja DOM: struktura DOM wewnątrz Shadow DOM nie jest widoczna ani dostępna bezpośrednio z głównego dokumentu, co zapobiega konfliktom id i klas.
  • Kapsułkowanie: tworzy modułowe, wielokrotnego użytku komponenty.

Tworzenie Shadow DOM:

const hostElement = document.getElementById('my-component');
const shadowRoot = hostElement.attachShadow({ mode: 'open' }); // tryb: 'open' - dostępny z JavaScript; 'closed' - nie

shadowRoot.innerHTML = `
  <style>
    /* Style tylko dla tego Shadow DOM */
    p {
      color: blue;
    }
  </style>
  <p>To jest zawartość Shadow DOM</p>
`;