监视Angular组件生命周期挂钩

时间:2018-07-04 12:58:25

标签: javascript angular

在Angular中,可以监视路由器的路由事件(see docu)。

组件生命周期挂钩(see docu)是否有类似的概念?

基本上,我想对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');
   }
}

无济于事,因为MyAwesomeComponentLessAwesomeComponent将覆盖onInit / onDestroy方法。

能否执行更通用/基于模块的方法?

0 个答案:

没有答案