美文网首页
angular 生命周期钩子/函数详解

angular 生命周期钩子/函数详解

作者: 饱饱抓住了灵感 | 来源:发表于2023-03-22 15:10 被阅读0次

Angular生命周期钩子(Lifecycle Hooks)是一组由Angular提供的函数,它们在组件的生命周期中的不同阶段被调用。

这些钩子函数可以让我们在特定的时刻执行自定义逻辑,例如在组件初始化时获取数据、监测变化或清理资源等。

每个接口都有唯一的一个钩子方法,它们的名字是由接口名再加上ng前缀构成的,比如OnInit接口的钩子方法是ngOnInit。

钩子详解

执行顺序 接口 函数 调用次数 解释
0 - constructor 只调用一次 constructor是ES6中class中新增的属性,当class类实例化的时候调用constructor来初始化类。
angular中的组件是基于class类实现的,constructor用来做依赖注入
1 OnChanges ngOnChanges 多次调用, 首次调用发生在组件初始化时, ngOnInit之前 当被绑定的输入属性的值发生变化时调用, 且必须是父组件改变子组件的输入属性变化时, 才会调用,而子组件自己改变输入属性不会调用
ngOnChanges()方法获取了一个对象,它可以同时观测多个绑定的属性值,它把每个发生变化的属性名都映射到了SimpleChange对象, SimpleChanges的值包含:previousValue : any, currentValue : any, firstChange : boolean
通俗地说:@input属性(输入属性)发生变化时,会调用。非@input属性,不会调用。如果@input属性为对象时,即使对象的属性值发生变化也不会调用,只有对象的引用发生变化时才会触发
2 OnInit ngOnInit 只调用一次 组件初始化时,只调用一次,在第一次调用ngOnChange后调用。
3 DoCheck ngDoCheck 多次调用 在组件定义的属性或方法变更时调用(用于脏值检查,非常消耗性能,因为会把所有的属性和方法都检查一遍),第一次是在ngOnInit之后调用。
后续只要鼠标移动就会触发
4 AfterContentInit ngAfterContentInit 只调用一次 只调用一次, 在组件内容初始化之后调用,在第一次ngDoCheck之后调用。
5 AfterContentChecked ngAfterContentChecked 多次调用 在组件每次检查内容发生变更时调用。第一次调用是在ngAfterContentInit之后。
后续只要鼠标移动就会触发, 发生在ngDoCheck之后调用
6 AfterViewInit ngAfterViewInit 只调用一次 在组件相应的视图初始化之后调用,只调用一次, 第一次ngAfterContentCheck之后调用。
7 AfterViewChecked ngAfterViewChecked 多次调用 在组件每次检查视图发生变更时调用,第一次是在ngAfterViewInit之后
后续只要鼠标移动就会触发, 发生在ngAfterContentChecked之后
8 OnDestroy ngOnDestroy 只调用一次 在组件销毁前调用,可以用来做一些清理工作,比如退订可观察对象(subscription)和移除事件处理器,以免导致内存泄漏。
angular组件生命周期.png

钩子分类

  • 指令与组件共有的钩子: ngOnChanges, ngOnInit, ngDoCheck, ngOnDestroy
  • 组件特有的钩子: ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, ngAfterViewChecked

相关文章

  • 生命周期

    生命周期和钩子函数 Angular 中每个 component/directive 都有它自己的生命周期。包括创建...

  • angular 钩子

    angular 钩子ngOnInit是 Angular 组件生命周期中的一个钩子,Angular 中的所有钩子和调...

  • angular生命周期

    大纲 1、angular生命周期是什么2、生命周期钩子分类3、Angular 2 指令生命周期钩子的作用及调用顺序...

  • Vue生命周期

    Vue生命周期详解 一、Vue生命周期 与 作用 (生命周期钩子就是生命周期函数) (1)Vue生命周期:每个Vu...

  • Vue的生命周期和钩子函数

    Vue的生命周期 Vue示例被创建到销毁的过程 Vue的钩子函数详解

  • ionic2/3页面的生命周期钩子

    页面的生命周期钩子 Angular 钩子目的和时机 官方文档:https://angular.cn/docs/ts...

  • 详细的分析 Vue生命周期

    Vue 的生命周期 生命周期执行的函数叫法有三种: 生命周期钩子 生命周期函数 钩子函数 生命周期钩子概念: 在v...

  • 学习链接

    vue-router教程总结 vue生命周期和钩子函数 详解vue生命周期 Vue2.0八——知识点整理 vuex...

  • angular中的生命周期

    生命周期 1、Angular每个组件都存在一个生命周期,从创建,变更到销毁。Angular提供组件生命周期钩子,把...

  • vue 获取节点 获取事件

    vue 生命周期 什么是钩子函数 一开始就执行的 就是钩子函数 vue 钩子函数 也称作为生命周期 befor...

网友评论

      本文标题:angular 生命周期钩子/函数详解

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