Angular生命周期的钩子执行顺序
生命周期钩子接口 | 钩子 | 用途 |
---|---|---|
OnChanges | ngOnChanges(changes: SimpleChanges) | 在组件有绑定值的时候,在绑定值发生变化的时候调用,在ngOninit()之前,任何一个、多个绑定值发生变化的时候都会调用,在这个钩子中,可以有一个SimpleChanges类型的参数,这个参数可以看到绑定的是和上一次发生变化,并可以判断是否是第一次变化。 |
OnInit | ngOnInit() | 组件在数据、指令、组件绑定完成以后,初始化组件、指令,在第一轮ngOnChanges调用完了以后才开始调用,特别注意这个只调用一次 |
DoCheck | ngDoCheck() | 在Angular中无法检测或者非正常情况下进行检测变化,紧跟在ngOnChanges()和ngOnInit()后调用 |
AfterContentInit | ngAfterContentInit() | 在Angular将外部内容投影进来以后进行调用,第一次ngDoCheck()调用完成以后才开始调用这个生命周期的钩子,并且这个生命周期的钩子只调用一次 |
AfterContentChecked | ngAfterContentChecked() | 当Angular完成被投影组件的内容变更检测以后调用,在ngAfterContentInit()和ngDoCheck()之后调用 |
AfterViewInit | ngAfterViewInit() | 当Angular完成组件视图、子组件视图以后调用,第一次ngAfterContentChecked()之后调用,注意只调用一次 |
AfterViewChecked | ngAfterViewChecked() | 在Angular完成组件的视图、子组件的视图检测以后调用,在ngAfterViewInit() 和每次 ngAfterContentChecked() 之后调用。 |
OnDestroy | ngOnDestroy() | 在Angular销毁组件、指令之前调用并清扫 |