每个Angular 2组件都有自己的生命周期。每种方法都可用于特殊目标。但我无法找到有关在每个生命周期钩子方法中使用哪种逻辑以及何时使用每种逻辑的详细信息。
例如,构造函数是注入所需依赖项的最佳位置。
谁能详细澄清这个问题(有例子和最佳实践)?
答案 0 :(得分:2)
在angular.io本身中非常清楚,请参考Bellow积分
<强> TimingngOnChanges()强>
Angular(重新)设置数据绑定输入属性时的响应。该方法接收当前和以前属性值的SimpleChanges对象。
在ngOnInit()之前以及每当一个或多个数据绑定输入属性发生更改时调用。
<强> ngOnInit()强>
在Angular首次显示数据绑定属性并设置指令/组件的输入属性后初始化指令/组件。
在第一次ngOnChanges()之后调用一次。
<强> ngDoCheck()强>
检测并执行Angular无法或不会自行检测到的更改。
在每次更改检测运行期间,在ngOnChanges()和ngOnInit()之后立即调用。
<强> ngAfterContentInit()强>
在Angular将外部内容投影到组件视图后做出响应。
在第一次ngDoCheck()之后调用一次。
仅限组件的挂钩。
<强> ngAfterContentChecked()强>
在Angular检查投射到组件中的内容后做出响应。
在ngAfterContentInit()和随后的每个ngDoCheck()之后调用。
仅限组件的挂钩。
<强> ngAfterViewInit()强>
在Angular初始化组件的视图和子视图后做出响应。
在第一次ngAfterContentChecked()之后调用一次。
仅限组件的挂钩。
<强> ngAfterViewChecked()强>
在Angular检查组件的视图和子视图后做出响应。
在ngAfterViewInit和之后的每个ngAfterContentChecked()之后调用。
仅限组件的挂钩。
<强> ngOnDestroy 强>
在Angular破坏指令/组件之前进行清理。取消订阅Observable并分离事件处理程序以避免内存泄漏。
在Angular破坏指令/组件之前调用。