Sobes.tech
Middle

Kas ir Shadow DOM?

sobes.tech AI

Atbilde no AI

Shadow DOM — ir tīmekļa standarts, kas ļauj inkapsulēt DOM koku un stilus komponenta iekšienē, izolējot tos no pārējā dokumenta.

Galvenās koncepcijas:

  • Shadow tree: Pašreizējais DOM koks, pievienots elementam.
  • Shadow boundary: Robeža, kas atdala Shadow DOM no galvenā dokumenta.
  • Shadow host: Elements, pie kura ir pievienots Shadow DOM.
  • Shadow root: Shadow koka saknes mezgls.

Priekšrocības:

  • Stilu izolācija: Stili, kas definēti Shadow DOM iekšienē, neietekmē ārējos elementus, un otrādi.
  • DOM izolācija: DOM struktūra Shadow DOM iekšienē nav redzama un nav tieši pieejama no galvenā dokumenta, tas novērš ID un klases konfliktus.
  • Kapsulācija: veido modulāras, atkārtoti lietojamas komponentes.

Shadow DOM izveide:

const hostElement = document.getElementById('my-component');
const shadowRoot = hostElement.attachShadow({ mode: 'open' }); // režīms: 'open' - pieejams ar JavaScript; 'closed' - nē

shadowRoot.innerHTML = `
  <style>
    /* Šī Shadow DOM stili */
    p {
      color: blue;
    }
  </style>
  <p>Šis ir Shadow DOM saturs</p>
`;