在组件生命周期中,我们有不同的接口跟踪组件
生命周期中的不同阶段,例如.OnInit,OnChanges,OnDestroy ..etc
在运行时如何使用angular触发那些方法?
对于前 当@Input数据现在改变时触发ngOnChanges()
Angular有这个逻辑我假设
1-只要角度检测在@input数据中发生变化
2-角度检查该组件类是否实现OnChanges
3-如果为true则触发ngOnChanges( )
并且每个生命周期钩子都有一些逻辑,
这是角度触发生命周期钩子的方式吗?
好问题!Angular的生命周期钩子由@angular/core库[ source ]实现.
为了证明这一点,运行一个angular cli项目并在(可选的chrome)开发工具中,在生命周期钩子中放置一个换行符,如下所示:
刷新页面以捕获断点,从而查看调用堆栈:
Angular团队显然会编写详细的代码,因此我认为我不需要解释以下语句的逻辑ngOnInit():
if ((view.state & ViewState.FirstCheck) && (def.flags & NodeFlags.OnInit)) {
directive.ngOnInit();
}
Run Code Online (Sandbox Code Playgroud)
这个功能的好打字版本可以在这里找到.