Moduser for visningsinnkapsling
Sammenlign Emulated, None og ShadowDom.
Moduser for visningsinnkapsling er en gratis leksjon i Angular Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Angular Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Angular Academy inneholder totalt 4 leksjoner.
Hva er visningsinnkapsling?
Visningsinnkapsling styrer hvordan stilene til en komponent isoleres fra resten av siden. Angular tilbyr tre moduser via egenskapen encapsulation.
Angi modus
Angi modusen med enumen ViewEncapsulation i dekoratoren @Component.
import { Component, ViewEncapsulation } from "@angular/core";
@Component({
selector: "app-card",
encapsulation: ViewEncapsulation.Emulated
})
export class CardComponent {}Emulated (standard)
Emulated er standardmodusen. Angular simulerer avgrensede stiler ved å legge til unike attributter i elementer og selektorer, uten å bruke innebygd Shadow DOM.
@Component({
encapsulation: ViewEncapsulation.Emulated
})Slik fungerer Emulated
Modusen Emulated omskriver selektorer med genererte attributter og gir avgrensning som fungerer i alle nettlesere uten krav om støtte for Shadow DOM.
/* you write */
.title { color: blue; }
/* angular emits */
.title[_ngcontent-xyz] { color: blue; }None
None deaktiverer innkapsling fullstendig. Komponentstilene blir globale og kan påvirke alle elementer på siden.
@Component({
encapsulation: ViewEncapsulation.None,
styles: [".title { color: red; }"]
})
// .title now applies app-wideNår bør De bruke None?
Bruk None med måte, for eksempel for å definere delte temaregler fra én komponent. Vær oppmerksom på at stiler kan komme i konflikt globalt.
ShadowDom
ShadowDom bruker nettleserens innebygde Shadow DOM for å isolere komponentens oppmerking og stiler fullstendig.
@Component({
selector: "app-widget",
encapsulation: ViewEncapsulation.ShadowDom
})
export class WidgetComponent {}Hvordan ShadowDom skiller seg ut
Med ShadowDom gjengis komponenten inne i en ekte shadow root. Globale stiler trenger ikke inn, og komponentstiler lekker ikke ut, noe som gir den sterkeste isolasjonen.
Sammenligning av stil-lekkasje
Emulated hindrer lekkasje ut, men globale stiler kan fortsatt treffe elementer; None gir ingen isolasjon; ShadowDom blokkerer begge retninger fullstendig.
Velge modus
Hold Dem til Emulated i nesten alle tilfeller. Bruk ShadowDom for fullstendig isolerte widgeter og None bare for tilsiktede globale stiler.
Innkapsling og globale stiler
Husk at det globale styles.css alltid brukes, uavhengig av modus, bortsett fra inne i en ShadowDom-komponent, der globale stiler ikke når frem.
Kort sjekk
Test forståelsen Deres av modusene for visningsinnkapsling.
Oppsummering
Angular tilbyr tre innkapslingsmoduser: Emulated (standard, simulert avgrensning), None (globale stiler) og ShadowDom (innebygd isolasjon). Emulated passer i de fleste tilfeller, mens ShadowDom gir den sterkeste isolasjonen.
Lær deg HTML med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 38
- Leksjoner
- 144
Ofte stilte spørsmål
Er leksjonen «Moduser for visningsinnkapsling» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Angular Academy, inkludert «Moduser for visningsinnkapsling», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Angular Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Moduser for visningsinnkapsling»?
Sammenlign Emulated, None og ShadowDom. Du øver på Angular Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Angular Academy?
Ingen tidligere erfaring er nødvendig. Angular Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Moduser for visningsinnkapsling»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Angular Academy-leksjonen?
Ja. Alle Angular Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Komponentspesifikke stiler
- Moduser for visningsinnkapsling
- Stilsetting av host og host-context
- Dynamiske klasser og stiler