Angular 之生命周期函数
生命周期函数是指的一个组件创建、组件更新、组件销毁的时候会触发的一系列的方法,当Angular使用构造函数新建一个组件或指令后,就会按照一定的顺序在特定时刻调用这些生命周期钩子的方法。
- construct():
构造函数中除了使用简单的值对局部变量进行初始化之外,其他的什么都做不了。 - ngOnChanges():
当Angular重新设置数据绑定输入属性时响应,该方法接受当前和上一属性值的simpleChanges对象,当被绑定的输入属性的值发生变化时调用,首次调用一定会发生在ngOnInit()之前。 - ngOnInit(): *
请求数据一般放在这里,只会调用一次
使用ngOnInit()有两个原因:
1、在构造函数之后马上执行复杂的初始化逻辑
2、在Angular设置完输入属性之后,对该组件进行准备 - ngDoCheck():
检测,并在发生Angular无法或不愿意自己检测的变化时作出反应,在每个Angular变更检测周期中调用 - ngAfterContentInit():
当把内容投影进组件之后调用,只调用一次。 - ngAfterContentChecked():
每次完成被投影组件内容的变更检测之后调用. - ngAfterViewInit():
初始化完组件视图及其子视图之后调用,(dom操作放在这里)只调用一次。 - ngAfterViewChecked():
每次做完组件视图和子视图的变更检测之后调用 - ngOnDestroy():
当Angular每次销毁指令/组件之前调用并清扫,在这反订阅可观察对象和分离事件处理器,以防内存泄漏,在Angular销毁指令/组件之前调用。
以上生命周期函数执行顺序如下:
01构造函数
02 ngOnInit
03 ngDoCheck
04ngAfterContentInit
05ngAfterContentChecked
06ngAfterViewIint
07ngAfterViewChecked