Sobes.tech
Middle

Ce este Shadow DOM?

sobes.tech AI

Răspuns de la AI

Shadow DOM — este un standard web care permite încapsularea arborelui DOM și a stilurilor în interiorul unui component, izolându-le de restul documentului.

Concepte principale:

  • Shadow tree: Arbore DOM propriu, atașat unui element.
  • Shadow boundary: Granița care separă Shadow DOM de documentul principal.
  • Shadow host: Elementul la care este atașat Shadow DOM.
  • Shadow root: Nodul rădăcină al Shadow tree.

Avantaje:

  • Izolare a stilurilor: Stilurile definite în interiorul Shadow DOM nu afectează elementele din afara sa, și vice-versa.
  • Izolare a DOM-ului: Structura DOM din interiorul Shadow DOM nu este vizibilă și nu este accesibilă direct din documentul principal, prevenind conflictele de id-uri și clase.
  • Încapsulare: Creează componente modulare și reutilizabile.

Crearea Shadow DOM:

const hostElement = document.getElementById('my-component');
const shadowRoot = hostElement.attachShadow({ mode: 'open' }); // mod: 'open' - accesibil prin JavaScript; 'closed' - nu

shadowRoot.innerHTML = `
  <style>
    /* Stiluri doar pentru acest Shadow DOM */
    p {
      color: blue;
    }
  </style>
  <p>Acesta este conținutul Shadow DOM</p>
`;