Sobes.tech
Middle

Shadow DOM чист?

sobes.tech AI

Ҷавоб аз AI

Shadow DOM — бу, стандарт веб, ки имкон медиҳад, ки дарахти DOM ва услубҳоро дар дохили компонент инкапсулатсия кунад ва онҳоро аз қисми дигаре аз ҳуҷҷат ҷудо созад.

Консепсияҳои асосӣ:

  • Shadow tree: Дарахти DOM-и худ, ки ба унсури пайваст мешавад.
  • Shadow boundary: Саҳна, ки Shadow DOM-ро аз ҳуҷҷати асосӣ ҷудо мекунад.
  • Shadow host: Унсур, ки ба он Shadow DOM пайваст аст.
  • Shadow root: Нодҳои асосии Shadow tree.

Афзалиятҳо:

  • Изоляцияи услубҳо: Услубҳое, ки дар дохили Shadow DOM муайян шудаанд, ба унсурҳои берун аз он таъсир намерасонанд, ва баръакс.
  • Изоляцияи DOM: Тарҳрезии DOM дар дохили Shadow DOM намоён нест ва мустақиман аз ҳуҷҷати асосӣ дастрас нест, ки боиси пешгирии муноқишаҳои ID ва синфҳо мешавад.
  • Капсула: Компонентҳои модулӣ ва такрорӣ созиш мекунад.

Тартиби сохтани Shadow DOM:

const hostElement = document.getElementById('my-component');
const shadowRoot = hostElement.attachShadow({ mode: 'open' }); // режим: 'open' - дастрас аст тавассути JavaScript; 'closed' - нест

shadowRoot.innerHTML = `
  <style>
    /* Услубҳо танҳо барои ин Shadow DOM */
    p {
      color: blue;
    }
  </style>
  <p>Ин мазмуни Shadow DOM аст</p>
`;