ngOnInit og initialisering
Kør opsætningslogik, når en komponent starter.
ngOnInit og initialisering er en gratis Angular Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Angular Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Angular Academy-kurset indeholder 4 lektioner i alt.
Hvad er livscykluskroge?
Angular-komponenter har en livscyklus, der styres af frameworket: oprettelse, ændringsregistrering, gengivelse og destruktion. Livscykluskroge lader dig køre kode på bestemte tidspunkter.
Introduktion til OnInit
OnInit-krogen kører én gang, efter at Angular har angivet komponentens inputværdier og gengivet den oprindelige visning. Det er det almindelige sted til initialiseringslogik.
Implementere OnInit
Implementér grænsefladen OnInit, og tilføj metoden ngOnInit. Angular kalder den automatisk.
import { Component, OnInit } from "@angular/core";
@Component({ selector: "app-demo", template: "" })
export class DemoComponent implements OnInit {
ngOnInit(): void {
console.log("Component initialized");
}
}Constructor kontra ngOnInit
Konstruktøren kører først, før inputværdierne er angivet, og bør kun håndtere let afhængighedsinjektion. Brug ngOnInit til den egentlige opsætning, når inputværdierne er tilgængelige.
constructor(private http: HttpClient) {
// inputs NOT ready yet
}
ngOnInit() {
// inputs ARE ready here
}Inputværdierne er klar i ngOnInit
Når ngOnInit kører, har alle @Input-egenskaber fået deres oprindelige værdier fra forælderen.
@Input() userId!: string;
ngOnInit() {
console.log(this.userId); // available
}Hente data i ngOnInit
Et almindeligt mønster er at indlæse data fra en tjeneste i ngOnInit, eftersom du har adgang til inputværdier og afhængigheder.
ngOnInit() {
this.userService.getUser(this.userId)
.subscribe(u => this.user = u);
}ngOnInit kører én gang
I modsætning til kroge til ændringsregistrering kører ngOnInit præcis én gang i komponentens levetid, lige efter den første ngOnChanges.
Rækkefølgen i forhold til ngOnChanges
Hvis komponenten har inputværdier, udløses ngOnChanges først med de oprindelige værdier, og derefter kører ngOnInit. Uden inputværdier kører ngOnInit stadig.
// sequence with inputs:
// 1. constructor
// 2. ngOnChanges (first)
// 3. ngOnInitInitialisere formularer
Opbygning af reaktive formularer er en klassisk opgave til ngOnInit, fordi du muligvis har brug for indsprøjtede tjenester til at konfigurere formularen.
form!: FormGroup;
ngOnInit() {
this.form = this.fb.group({
name: [""],
email: [""]
});
}Hold konstruktører lette
Undgå tungt arbejde i konstruktøren. Den kører, før Angular forbinder inputværdierne, og bivirkninger dér gør komponenter sværere at teste og forudsige.
Asynkron initialisering
Du kan kalde asynkron logik fra ngOnInit, men selve metoden returnerer void. Abonnér eller brug asynkrone mønstre i den.
ngOnInit() {
this.loadAsync();
}
private async loadAsync() {
this.data = await firstValueFrom(this.api.get());
}Hurtigt tjek
Test din forståelse af OnInit.
Opsummering
OnInit-krogen med ngOnInit kører én gang, efter at inputværdierne er bundet, og er velegnet til datahentning og opsætning af formularer. Hold konstruktøren let, og gem initialiseringen til ngOnInit.
Lær HTML med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 38
- Lektioner
- 144
Ofte stillede spørgsmål
Er lektionen “ngOnInit og initialisering” gratis?
Ja — alle 3 lektioner i læringssporet Angular Academy, inklusive “ngOnInit og initialisering”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Angular Academy-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “ngOnInit og initialisering”?
Kør opsætningslogik, når en komponent starter. Du øver dig i Angular Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Angular Academy?
Der kræves ingen tidligere erfaring. Angular Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.
Hvor lang tid tager lektionen “ngOnInit og initialisering”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Angular Academy-lektion?
Ja. Alle Angular Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- ngOnInit og initialisering
- ngOnChanges og inputændringer
- ngOnDestroy og oprydning
- AfterView- og AfterContent-hooks