Szukaj…


Uwagi

Dostępność wydarzeń

AfterViewInit i AfterViewChecked są dostępne tylko w komponentach , a nie w dyrektywach .

Kolejność wydarzeń

  • OnChanges (wiele razy)
  • OnInit (raz)
  • DoCheck (wiele razy)
  • AfterContentInit (raz)
  • AfterContentChecked (wiele razy)
  • AfterViewInit (jeden raz) (tylko składnik)
  • AfterViewChecked (wiele razy) (tylko komponent)
  • OnDestroy (raz)

Dalsza lektura

OnInit

Wywoływane po zainicjowaniu właściwości komponentu lub dyrektywy.

(Przed dyrektywami dotyczącymi dzieci)

import { Component, OnInit } from '@angular/core';

@Component({
    selector: 'so-oninit-component',
    templateUrl: 'oninit-component.html',
    styleUrls: ['oninit-component.']
})
class OnInitComponent implements OnInit {

    ngOnInit(): void {
        console.log('Component is ready !');
    }
}

OnDestroy

Uruchamiany, gdy instancja komponentu lub dyrektywy zostanie zniszczona.

import { Component, OnDestroy } from '@angular/core';

@Component({
    selector: 'so-ondestroy-component',
    templateUrl: 'ondestroy-component.html',
    styleUrls: ['ondestroy-component.']
})
class OnDestroyComponent implements OnDestroy {

    ngOnDestroy(): void {
        console.log('Component was destroyed !');
    }
}

OnChanges

Uruchamiany, gdy jedna lub więcej właściwości komponentu lub dyrektywy zostało zmienionych.

import { Component, OnChanges, Input } from '@angular/core';

@Component({
    selector: 'so-onchanges-component',
    templateUrl: 'onchanges-component.html',
    styleUrls: ['onchanges-component.']
})
class OnChangesComponent implements OnChanges {
    @Input() name: string;
    message: string;
    
    ngOnChanges(changes: SimpleChanges): void {
        console.log(changes);
    }
}

Przy zmianie zdarzenie zostanie zarejestrowane

name: {
    currentValue: 'new name value',
    previousValue: 'old name value'
},
message: {
    currentValue: 'new message value',
    previousValue: 'old message value'
}

AfterContentInit

Uruchom po zainicjowaniu treści komponentu lub dyrektywy.

(Zaraz po OnInit)

import { Component, AfterContentInit } from '@angular/core';

@Component({
    selector: 'so-aftercontentinit-component',
    templateUrl: 'aftercontentinit-component.html',
    styleUrls: ['aftercontentinit-component.']
})
class AfterContentInitComponent implements AfterContentInit {

    ngAfterContentInit(): void {
        console.log('Component content have been loaded!');
    }
}

AfterContentChecked

Strzelaj po pełnym zainicjowaniu widoku.

(Dostępne tylko dla komponentów)

import { Component, AfterContentChecked } from '@angular/core';

@Component({
    selector: 'so-aftercontentchecked-component',
    templateUrl: 'aftercontentchecked-component.html',
    styleUrls: ['aftercontentchecked-component.']
})
class AfterContentCheckedComponent implements AfterContentChecked {

    ngAfterContentChecked(): void {
        console.log('Component content have been checked!');
    }
}

AfterViewInit

Uruchamia się po zainicjowaniu zarówno widoku komponentu, jak i dowolnego z jego widoków potomnych. Jest to przydatny hak cyklu życia wtyczek poza ekosystemem Angular 2. Na przykład możesz użyć tej metody do zainicjowania selektora daty jQuery na podstawie znaczników, które renderował Angular 2.

import { Component, AfterViewInit } from '@angular/core';

@Component({
    selector: 'so-afterviewinit-component',
    templateUrl: 'afterviewinit-component.html',
    styleUrls: ['afterviewinit-component.']
})
class AfterViewInitComponent implements AfterViewInit {

    ngAfterViewInit(): void {
        console.log('This event fire after the content init have been loaded!');
    }
}

AfterViewChecked

Uruchom po zakończeniu sprawdzania widoku komponentu.

(Dostępne tylko dla komponentów)

import { Component, AfterViewChecked } from '@angular/core';

@Component({
    selector: 'so-afterviewchecked-component',
    templateUrl: 'afterviewchecked-component.html',
    styleUrls: ['afterviewchecked-component.']
})
class AfterViewCheckedComponent implements AfterViewChecked {

    ngAfterViewChecked(): void {
        console.log('This event fire after the content have been checked!');
    }
}

DoCheck

Pozwala nasłuchiwać zmian tylko w określonych właściwościach

import { Component, DoCheck, Input } from '@angular/core';

@Component({
    selector: 'so-docheck-component',
    templateUrl: 'docheck-component.html',
    styleUrls: ['docheck-component.']
})
class DoCheckComponent implements DoCheck {
    @Input() elements: string[];
    differ: any;
    ngDoCheck(): void {
        // get value for elements property
        const changes = this.differ.diff(this.elements);
        
        if (changes) {
            changes.forEachAddedItem(res => console.log('Added', r.item));
            changes.forEachRemovedItem(r => console.log('Removed', r.item));
        }
    }
}


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow