Как правильно пользоваться OnDestroy - PullRequest
0 голосов
/ 01 февраля 2019

Я видел много вопросов, связанных с ngOnDestroy.Я думаю, что многие из нас не используют это правильно или не используют это вообще.
Я просто хочу увидеть список советов, как правильно использовать ngOnDestroy и что мы должны делать в лучшем сценарии, чтобы предотвратить утечки памяти, ускорить и оптимизировать веб-приложения.
Что вы должны делать в каждом случае, когда используете его? (Какие шаги вы ДОЛЖНЫ предпринять?)
Как далеко вы должны пройти, если хотите сделать это идеально?Аннулирование всех ссылок и т. Д.

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Один сценарий, в котором вы используете Observable и подписываетесь на него в компоненте и получаете поток данных, например Firebase.Вы должны использовать ngOnDestroy и отменить подписку, когда вы покидаете страницу, чтобы предотвратить утечку памяти.

ngOnDestroy() {
  this.data.unsubscribe();
}
0 голосов
/ 01 февраля 2019

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);
  }
}
...