10Angular生命周期

  • constructor

组件构造函数,因为是类自带的,所以永远第一个调用且只调用一次(在这里无法拿到组件传值的数据)

  • ngOnChanges

组件输入属性发生改变时调用,首次在constructor之前调用,会触发多次

ngOnChanges(changes: SimpleChanges): void {
  console.log("组件输入属性改变",changes);
}
//打印所有@Input中的属性,
//字典型对象,包括当前值、前一个值及是否第一次改变(key是属性名,value是SimpleChange)
  • ngOnInit

只在组件初始化时调用一次,可以安全地使用组件中的方法,在它之前的调用顺序是constructor => ngOnChanges =>ngOnInit。

官方建议在这个钩子中获取组件初始化的数据,而构造函数中只适合写简单的逻辑,比如初始化局部变量。

区别于接口OnInit,接口是可选的,也就是说只要有类似ngOnInit这样的方法存在,生命周期的钩子函数还是正常执行

但是建议实现接口,好处一是不会由于误删某个钩子函数,另一个是对组建涉及到的生命周期一目了然。

  • ngDoCheck脏值检测

执行多次数,通常和ngOnchange不会同时出现,是angular框架帮助用户做出的检测,而ngOnChange是用户更关心的

  • ngAfterContentInit

组件内容初始化后调用

  • ngAfterContentChecked

组件内容每次检查后调用

  • AfterViewInit

在组件视图初始化后调用,在这里安全地使用@ViewChild引用的元素

  • ngAfterViewChecked

在组件视图每次检查后调用,通常是 ngDoCheck => ngAfterContentChecked => ngAfterViewChecked 这样的顺序。

  • ngOnDestory
  //清理定时器
  ngOnDestory(): void {
    clearInterval(this.intervalId)
  }

你可能感兴趣的:(10Angular生命周期)