5

Guardando agli articoli su ShadowDOM sembra che si tratti di un miglioramento di DocumentFragments. Qual è il vero vantaggio di ShadowDOM? Specificità CSS? Non posso fare più o meno le stesse cose con Fragments?ShadowDOM vs Document Fragments - In che cosa differiscono?

Sto cercando un elenco di funzionalità per ciascuno. Ad esempio, entrambi sembrano consentire di assemblare un albero di dom in memoria e fuori dal percorso di rendering principale. Tuttavia, ShadowDOM sembra avere il vantaggio aggiuntivo del CSS con scope.

Quali sono i casi in cui si utilizza ShadowDOM rispetto a dove si desidera utilizzare DocumentFragments?

UPDATE

Dopo aver guardato in questo più me stesso, vedo le due tecnologie sono completamente ortogonali.

Nota: Poiché la domanda è stata chiusa, non posso rispondere personalmente. In origine ho inserito i dettagli delle mie scoperte in un commento qui sotto, ma ho capito che più persone controlleranno il testo qui.

documento Frammenti sono uno strumento di costruzione Javascript/DOM, utilizzato per la creazione di un non-gerarchiche collezioni di nodi (ciascuno dei quali potrebbe essere il genitore di altri nodi) al largo della DOM. Sono essenzialmente un wrapper attorno alla raccolta dei nodi, che viene abbandonata una volta che il frammento viene aggiunto al DOM. DocumentFragments ti consente di raccogliere un numero di nodi allo stesso livello e di aggiungerli a un altro nodo DOM come fratelli.

Shadow Dom si basa sull'isolamento degli effetti collaterali all'interno di un DOM renderizzato di grandi dimensioni. ShadowDom consente di creare componenti riutilizzabili sandbox con stili incapsulati. Quando un componente basato su ShadowDom viene aggiunto a un'applicazione Web più grande, i suoi stili CSS non si estingueranno nel resto dell'applicazione, né gli stili dell'applicazione influenzeranno il rendering del componente.

Si noti che esistono combinatori CSS come ad esempio /deep/ e ::shadow per lo styling (e selezionando) componenti shadowDom dal DOM genitore, ma questi vengono deprecati in un prossimo futuro. Per questo motivo, si raccomanda che i componenti riutilizzabili che utilizzano ShadowDOM si basino su variabili CSS per lo stile, se intendono essere personalizzati dall'applicazione che li consuma.

+2

Non so come questo sia "principalmente basato sull'opinione". Non ho chiesto opinioni, ma un confronto obiettivo e il contrasto di capacità e scopi. – Gopherkhan

+2

La modifica deve essere spostata su una risposta. Quindi la domanda dovrebbe essere riaperta. – Oriol

+0

Come un noob che studiava componenti web ho avuto la stessa domanda e ho imparato molto qui. Questi tipi di domande non dovrebbero essere chiusi, ma una volta che la risposta dovrebbe essere bloccata per prevenire lo spam delle risposte – Callat

risposta

4

Da quello che ho letto e il modo in cui lo uso, è ShadowDom ha a che fare con incapsulamento come se si mette un tag <style> all'interno del ShadowDom il css sarà applicata solo al ShadowDom e frammenti di documenti hanno a che fare con il reflow del browser

+1

Aggiungo anche che i due hanno aspetti completamente diversi. I frammenti di documento sono uno strumento di costruzione dom, utilizzato per creare una raccolta non gerarchica di dom node (che potrebbero avere una gerarchia) fuori dal dominio. Sono essenzialmente un wrapper attorno alla raccolta dei nodi, che viene abbandonata una volta che il frammento viene aggiunto alla dom.Ciò consente di raccogliere un numero di nodi allo stesso livello e di rilasciarli nella dom come fratelli. Shadow Dom è tutto incentrato sull'isolamento degli effetti collaterali all'interno delle dom renderizzate. – Gopherkhan

Problemi correlati