Hooks ngOnDestroy v Angular

Hooks ngOnDestroy se sproži ob odstranitvi komponente. V tem hooku lahko sprostite vire, odstranite naročnino na dogodke elementov, ustavite časovnike itd.

Ustvarjanje in odstranjevanje komponente v Angular se zgodi, ko se reaktivno prikaže in skrije s pomočjo pogoja if. To pomeni, da Angular komponent ne samo skrije, ampak jih odstrani in vrne nazaj.

Prav tako se komponente ustvarijo in odstranijo, ko se reaktivno prebirajo v zankah. V tem primeru Angular prav tako ustvari in odstrani komponente.

Poskusimo v praksi. Uvozimo vmesnik OnDestroy:

app/user/user.component.tsimport { OnDestroy } from '@angular/core';

Povežimo ga z razredom:

app/user/user.component.tsexport class UserComponent implements OnDestroy {
  
}

In zdaj napišimo naš hooks:

app/user/user.component.tsexport class UserComponent implements OnDestroy {
  constructor() {
    console.log('constructor is started');
  }
  
  ngOnDestroy() {
    console.log('onDestroy is applied');
  }
}
Задание 1

Naredite reaktivni if s pomočjo katerega se bo prikazal podrejeni komponento. Preverite delovanje preučenega hooka.

Задание 2

V starševskem komponentu je dano polje imen uporabnikov. Naredite podrejeni komponent z uporabnikom. Preberite polje z zanko in izpišite komponente z uporabniki. Naredite gumb, ob kliku na katerega se bodo odstranili elementi iz polja. Preverite, da se bo v podrejenih komponentah sprožil hooks za odstranitev.