Angular:生命周期

154 阅读1分钟

详解Angular 中 ngOnInit 和 constructor 使用场景

  1. constructor
  • constructor是ES6引入类这个概念后出现的,和angular本身没有关系,constructor会在类生成实例时调用。angular无法控制constructor
  • constructor调用优先于所有生命周期函数
  • constructor一般用于依赖注入,变量静态初始化且尽可能逻辑简单
  1. ngOnInit

Angular生命周期一览 (有关check的钩子都是多次调用)

  • ngOnChanges -- 当被绑定的输入属性Input()的值发生变化时调用,没有则不触发。首次调用一定会发生在ngOnInit()之前。
  • ngOnInit() -- 在Angular第一次显示数据绑定和设置指令/组件的输入属性之后,初始化指令/组件。在第一轮ngOnChanges()完成之后调用,只调用一次。
  • ngDoCheck -- 自定义的方法,用于检测和处理值的改变。多次调用
  • ngAfterContentInit -- 在组件内容初始化之后调用,只适用于组件
  • ngAfterContentChecked -- 组件每次检查内容时调用,只适用于组件 多次调用
  • ngAfterViewInit -- 组件相应的视图初始化之后调用,只适用于组件
  • ngAfterViewChecked -- 组件每次检查视图时调用,只适用于组件 多次调用
  • ngOnDestroy -- 当Angular每次销毁指令/组件之前调用并清扫。在这儿反订阅可观察对象和分离事件处理器,清空定时器,以防内存泄漏。

注:check有关的钩子即使我移动鼠标都会触发,上一个页面没有清掉定时器也会一直不停的触发

主要用途

  • 变量动态初始化(sessionStorage数据持久化赋值等)
  • 组件通信
  • 异步Ajax请求数据