Хук ngOnDestroy в Angular

Хук ngOnDestroy срабатывает при удалении компонента. В этом хуке можно освободить ресурсы, удалить подписку на события элементов, оставить таймеры и т.п.

Созадние и удаление компонента в Angular происходит, когда он реактивно показыватеся и скрывается с помощью условия if. То есть Angular не просто прячет компоненты, а удаляет их и возвращает обратно.

Также компоненты создаются и удаляются, когда они реактивно перебираются в циклах. В этом случае Angular также создает и удаляет компоненты.

Давайте попробуем на практике. Импортируем интерфейс OnDestroy:

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

Подключим его к классу:

export class UserComponent implements OnDestroy { }

А теперь напишем наш хук:

export class UserComponent implements OnDestroy { constructor() { console.log('constructor is started'); } ngOnDestroy() { console.log('onDestroy is applied'); } }

Сделайте реактивный if с помощью которого будет показываться дочерний компонент. Проверьте работу изученного хука.

В родительском компоненте дан массив имен юзеров. Сделайте дочерний компонент с юзером. Переберите массив циклом и выведите компоненты с юзерами. Сделайте кнопку, по нажатию на которую будут удаляться элементы из массива. Проверьте, что в дочерних компонентах будет срабатывать хук на удаление.