Как правильно пользоваться OnDestroy
Я видел много вопросов, связанных с ngOnDestroy. Я думаю, что многие из нас не используют это правильно или не используют это вообще.
Я просто хочу увидеть список советов, как правильно использовать ngOnDestroy и что мы должны делать в лучшем сценарии, чтобы предотвратить утечки памяти, ускорить и оптимизировать веб-приложения.
Что вы должны делать в каждом случае, когда вы его используете?(Какие шаги вы ДОЛЖНЫ предпринять?)
Как далеко вам нужно идти, если вы хотите сделать это идеально? Аннулирование всех ссылок и т. Д.
2 ответа
Один сценарий, в котором вы используете Observable и подписываетесь на него в компоненте и получаете поток данных, например Firebase. Вы должны использовать ngOnDestroy и отменить подписку, когда вы покидаете страницу, чтобы предотвратить утечку памяти.
ngOnDestroy() {
this.data.unsubscribe();
}
NgDestroy вызывается в жизненном цикле компонента непосредственно перед окончательным уничтожением экземпляра компонента. Это идеальное место для очистки компонента
import {OnDestroy } from '@angular/core'; // import from core
@Directive({
selector: '[destroyDirective]'
})
export class OnDestroyDirective implements OnDestroy { // implements OnDestroy
//Call Constructor and set hello Msg.
constructor() {
this.helloMsg = window.setInterval(() => alert('Hello, I am Anil'), 2000);
}
//Destroy to the component
ngOnDestroy() {
window.clearInterval(this.helloMsg);
}
}