千家信息网

Angular中的生命周期实例分析

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天小编给大家分享一下Angular中的生命周期实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们
千家信息网最后更新 2026年11月01日Angular中的生命周期实例分析

今天小编给大家分享一下Angular中的生命周期实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

接触过 react 和 vue 开发的读者应该对生命周期这个概念不陌生。我们在使用 angular 开发的过程中,是避免不了的。

组件从开始建立到销毁的过程中,会经历过一系列的阶段。这就是一个生命周期,这些阶段对应着应用提供的 lifecycle hooks。

那么,在 angular 中,这些 hooks 都有哪些呢?了解它们,对你编写程序应该在哪里编写,很重要。

angular 中,生命周期执行的顺序如下:

- constructor 【常用,不算钩子函数,但是很重要】- ngOnChanges【常用】- ngOnInit【常用】- ngDoCheck  - ngAfterContentInit  - ngAfterContentChecked  - ngAfterViewInit【常用】  - ngAfterViewChecked- ngOnDestroy【常用】

为了解说和验证,我们用 angular-cli 生成一个 demo 项目。

constructor

在 es6 中的 class 初始化对象的时候,constructor 会立即被调用。

class Person {  constructor(name) {    console.log('be called')    this.name = name;  }}let jimmy = new Person('jimmy'); // be called

angular 的组件本身就是导出一个类。当这个组件被 new 起来的时候,会获取 constructor 中的预设的值。

ngOnChanges

当我们有外部参数更改的时候,我们就会执行 ngOnChanges,也就是说组件中有 @Input 所绑定的属性值发生改变的时候调用。

简单说,父组件绑定子组件中的元素,会触发这个钩子函数,可以多次出发。这在下面的 ngOnInit 总会介绍。

ngOnInit

这个方法调用的时候,说明组件已经初始化成功。在第一次 ngOnChanges() 完成之后调用,且只调用一次。

// app.component.tsexport class AppComponent implements OnInit, OnChanges {  constructor() {    console.log('1. constructor')  }  ngOnChanges() {    console.log('2. ngOnChanges')  }  ngOnInit() {    console.log('3. ngOnInit')  }}

打印的信息如下:

咦?怎么没有打印 ngOnChanges 中的钩子函数信息呢?

上面已经说过了,需要触发条件 @Input 的属性值改变的时候。我们来修改一下:

// app.component.ts// AppComponent 类中添加属性public count:number = 0;

count: {{ count }}

// demo.component.tsexport class DemoComponent implements OnInit, OnChanges {  @Input()  public count: number;  constructor() {    console.log('1. demo constructor')  }  ngOnChanges() {    console.log('2. demo ngOnChanges')  }  ngOnInit() {    console.log('3. demo ngOnInit')  }}

当通过 @Input 将值传递给子组件 demo 的时候,就会触发 demo 组件中的 ngOnChanges。

当 @Input 传递的属性发生改变的时候,可以多次触发 demo 组件中的 ngOnChanges 钩子函数。

// app.component.tsparentDemo() {  this.count++;}

ngDoCheck

当发生变化检测的时候,触发该钩子函数。

这个钩子函数,紧跟在每次执行变更检测时候 ngOnChanges 和首次执行执行变更检测时 ngOnInit 后面调用。

// demo.component.tsngDoCheck() {  console.log('4. demo ngDoCheck')}

这个钩子函数调用得比较频繁,使用成本比较高,谨慎使用。

一般使用 ngOnChanges 来检测变动,而不是 ngDoCheck

ngAfterContentInit

当把外部的内容投影到内部组件,第一次调用 ngDoCheck 之后调用 ngAfterContentInit,而且只调用一次。

// demo.component.tsngAfterContentInit() {  console.log('5. demo ngAfterContentInit');}

ngAfterContentChecked

ngAfterContentChecked 钩子函数在每次 ngDoCheck 之后调用.

// demo.component.tsngAfterContentChecked() {  console.log('5. demo ngAfterContentChecked');}

ngAfterViewInit

视图初始化完成调用此钩子函数。在第一次 ngAfterContentChecked 之后调用,只调用一次。

这个时候,获取页面的 DOM 节点比较合理

// demo.compoent.tsngAfterViewInit() {  console.log('7. demo ngAfterViewInit');}

ngAfterViewChecked

视图检测完成调用。在 ngAfterViewinit 后调用,和在每次 ngAfterContentChecked 之后调用,也就是在每次 ngDoCheck 之后调用。

// demo.component.tsngAfterViewChecked() {  console.log('8. ngAfterViewChecked')}

ngOnDestroy

组件被销毁时候进行的操作。

在这个钩子函数中,我们可以取消订阅,取消定时操作等等。

// app.component.tspublic showDemoComponent: boolean = true;hideDemo() {  this.showDemoComponent = false}
// demo.component.tsngOnDestroy() {  console.log('9. demo ngOnDestroy')}

以上就是"Angular中的生命周期实例分析"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

时候 组件 函数 钩子 周期 生命 常用 检测 属性 知识 篇文章 内容 就是 第一次 实例 实例分析 分析 重要 也就是 信息 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司简介 哈尔滨大商圈互联网科技有限公司 互联网科技工作委员会副主任毛军 互联网的科技创新 火传媒上海互联网科技 互联网金融和金融科技 青海省互联网新科技 深圳市运趣互联网科技有限公司 互联网科技实习生岗位职责 湖南诚度互联网科技有限公司 互联网科技项目计划书材料类 武汉健翔互联网络科技有限公司 辽宁互联网新科技 洛阳昕诺飞互联网科技有限公司 互联网科技人工智能实验室 996高科技互联网公司 徐州市互联网科技有限公司 四川互联网展示科技馆设计 济南小医互联网科技有限公司招聘 互联网科技自媒体灵感 亿账通互联网科技 互联网金融和金融科技 新华互联网科技校企合作 互联网科技公司需要的职位 北京三清互联网科技 互联网之后的科技是什么 银川新华互联网科技职业技术培训学校图片 哈尔滨屹滨互联网科技有限公司 青海科技产业互联网发展 广州智享互联网科技
0