美文网首页
10Angular生命周期

10Angular生命周期

作者: learninginto | 来源:发表于2020-12-22 19:32 被阅读0次
    • 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生命周期

          本文链接:https://www.haomeiwen.com/subject/npzsnktx.html