Sobes.tech
Middle

Mi az a Shadow DOM?

sobes.tech MI

Válasz az MI-től

Shadow DOM — ez egy webes szabvány, amely lehetővé teszi a DOM-fa és a stílusok inkapszulálását egy komponensen belül, izolálva azokat a dokumentum többi részétől.

Fő fogalmak:

  • Shadow tree: Saját DOM-fa, amely egy elemhez csatlakozik.
  • Shadow boundary: Határ, amely elválasztja a Shadow DOM-ot a fő dokumentumtól.
  • Shadow host: Az elem, amelyhez a Shadow DOM csatlakozik.
  • Shadow root: A Shadow tree gyökércsomópontja.

Előnyök:

  • Stílus izoláció: A Shadow DOM-ban definiált stílusok nem befolyásolják a rajta kívüli elemeket, és fordítva.
  • DOM izoláció: A Shadow DOM-on belüli DOM-struktúra nem látható és nem érhető el közvetlenül a fő dokumentumból, ez megakadályozza az azonosítók és osztályok konfliktusát.
  • Encapsuláció: moduláris, újrahasznosítható komponenseket hoz létre.

Shadow DOM létrehozása:

const hostElement = document.getElementById('my-component');
const shadowRoot = hostElement.attachShadow({ mode: 'open' }); // mód: 'open' - JavaScript-ből elérhető; 'closed' - nem

shadowRoot.innerHTML = `
  <style>
    /* Csak ennek a Shadow DOM-nak a stílusai */
    p {
      color: blue;
    }
  </style>
  <p>Ez a Shadow DOM tartalma</p>
`;