在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');
}
}
无济于事,因为MyAwesomeComponent
和LessAwesomeComponent
将覆盖onInit
/ onDestroy
方法。
能否执行更通用/基于模块的方法?