Отслеживание угловых компонентов жизненного цикла компонентов - PullRequest
0 голосов
/ 04 июля 2018

В Angular можно отслеживать маршрутизатор на предмет маршрутизации событий ( см. Документ ).

Возможна ли аналогичная концепция для хуков жизненного цикла компонентов ( см. Документ )?

По сути, я хотел бы добиться своего рода трассировки для компонентов в приложении Angular. События маршрутизации легко отследить, но не все события жизненного цикла компонентов основаны на маршрутизации.

Я бы хотел избежать "ручной" реализации / дублирования внутри каждого компонента ngOnInit() или onDestroy() etc. Э.Г.

export class MyAwesomeComponent implements OnInit, OnDestroy {
   constructor (private someTraceImplementation) {}

   public onOnit():void {
      someTraceImplementation.trace('init', 'MyAwesomeComponent');
   }

   publicc onDestroy() {
      someTraceImplementation.trace('destroy', 'MyAwesomeComponent');
   }
}

export class LessAwesomeComponent implements OnInit, OnDestroy {
   constructor (private someTraceImplementation) {}

   public onOnit():void {
      someTraceImplementation.trace('init', 'LessAwesomeComponent');
   }

   publicc onDestroy(): void {
      someTraceImplementation.trace('destroy', 'LessAwesomeComponent');
   }
}

Вывод трассировки в реализацию базового класса

export class TracingComponent implements OnInit, OnDestroy {
   public onOnit():void {
      someTraceImplementation.trace('init', 'LessAwesomeComponent');
   }

   public onDestroy(): void {
      someTraceImplementation.trace('destroy', 'LessAwesomeComponent');
   }
}

не помогает, так как MyAwesomeComponent и LessAwesomeComponent будут перезаписывать методы onInit / onDestroy.

Можно ли сделать более общий / модульный подход?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...