Angular中生命周期钩子函数的理解
Angular每个组件都存在一个生命周期,从创建,变更到销毁。。。
生命周期执行顺序:
// 0. constructor
构造函数中, 除了使用简单的值对外部局部变量进行初始化外,什么都不应该做
1 . ngOnChanges (父子组件传值时会用到)
在有输入属性的情况下才会调用,该方法接受当前和上一属性值的SimpleChanges对象。如果有输入属性,会在ngOnInit之前调用。
2 . ngOnInit (通常原来处理请求数据及初始化指令/组件)
在组件初始化的时候调用,只调用一次,在第一次调用ngOnChanges之后调用
3 . ngDoCheck
在组件定义的属性或方法变更时调用(用于脏值之检测,非常耗性能,因为会把所有的属性和方法都检测一遍),会在ngOnChanges()和ngOnInit()之后
4 . ngAfterContentInit
在组件内容初始化之后调用,在第一次ngDoCheck之后调用,只调用一次
5 . ngAfterContentChecked
在组件每次检查内容放生变更时调用。在ngAfterContentInit和每次ngDoCheck之后调用
6 . ngAfterViewInit (一般用来做DOM操作)
在组件相应的视图初始化之后调用,第一次ngAfterContentChecked之后调用,只调用一次
7 . ngAfterViewChecked
在组件每次检查视图发生变更时调用。ngAfterViewInit和每次ngAfterContentChecked之后调用。
8 . ngOnDestroy
当Angular 每次销毁指令/组件之前调用并清扫,比如退订可观察对象和移除事件处理器,以免导致内存泄漏。