Angular Academy · Lektion

ngOnInit og initialisering

Kør opsætningslogik, når en komponent starter.

Lektion 1 af 413 trin

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. ngOnInit

Initialisere 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.

Gratis at komme i gang

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

  1. ngOnInit og initialisering
  2. ngOnChanges og inputændringer
  3. ngOnDestroy og oprydning
  4. AfterView- og AfterContent-hooks
← Tilbage til Angular Academy