iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Angular生命周期执行的顺序是什么
  • 339
分享到

Angular生命周期执行的顺序是什么

2023-07-05 00:07:57 339人浏览 薄情痞子
摘要

这篇文章主要介绍“angular生命周期执行的顺序是什么”,在日常操作中,相信很多人在Angular生命周期执行的顺序是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Angular生命周期执行的顺序是什么

这篇文章主要介绍“angular生命周期执行的顺序是什么”,在日常操作中,相信很多人在Angular生命周期执行的顺序是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Angular生命周期执行的顺序是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

接触过 ReactVue 开发的读者应该对生命周期这个概念不陌生。我们在使用 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')  }}

打印的信息如下:

Angular生命周期执行的顺序是什么

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

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

<!-- app.component.html --><div>  <app-demo></app-demo></div>
// app.component.ts// AppComponent 类中添加属性public count:number = 0;
<!-- demo.component.html --><h4>count: {{ count }}</h4>
// 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')  }}

Angular生命周期执行的顺序是什么

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

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

<!-- app.component.html --><div>  <app-demo [count]="count"></app-demo>  <button (click)="parentDemo()">parent button</button></div>
// 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');}

Angular生命周期执行的顺序是什么

ngAfterContentChecked

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

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

ngAfterViewInit

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

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

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

Angular生命周期执行的顺序是什么

ngAfterViewChecked

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

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

ngOnDestroy

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

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

<!-- app.component.html --><app-demo [count]="count" *ngIf="showDemoComponent"></app-demo><button (click)="hideDemo()">hide demo component</button>
// app.component.tspublic showDemoComponent: boolean = true;hideDemo() {  this.showDemoComponent = false}
// demo.component.tsngOnDestroy() {  console.log('9. demo ngOnDestroy')}

PS: 不知道读者有没有发现,调用一次的钩子函数都比较常用~

到此,关于“Angular生命周期执行的顺序是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Angular生命周期执行的顺序是什么

本文链接: https://www.lsjlt.com/news/348614.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Angular生命周期执行的顺序是什么
    这篇文章主要介绍“Angular生命周期执行的顺序是什么”,在日常操作中,相信很多人在Angular生命周期执行的顺序是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Angular生命周期执行的顺序是什么...
    99+
    2023-07-05
  • React Class组件生命周期及执行顺序
    一、react组件的两种定义方式 1、函数组件,简单的函数组件像下面这样,接收Props,渲染DOM,而不关注其他逻辑 function Welcome(props) { r...
    99+
    2022-11-12
  • 浅谈Unity脚本生命周期与执行顺序
    目录一、脚本生命周期二、MonoBehavior生命周期图三、脚本执行顺序四、自定义执行顺序一、脚本生命周期 Unity脚本中的常见必然事件如下表所示 ...
    99+
    2022-11-12
  • vue2与vue3中的生命周期执行顺序有什么区别
    vue2与vue3中生命周期执行顺序区别生命周期比较vue2中执行顺序 beforeCreate=>created=>beforeMount =>mounted=>beforeUpdate =>upd...
    99+
    2023-05-16
    Vue3 vue2
  • vue2与vue3中生命周期执行顺序的区别说明
    目录vue2与vue3中生命周期执行顺序区别生命周期比较简单例子说明三种情况下的生命周期执行顺序1、单页面下生命周期顺序2、父子、兄弟组件的生命周期顺序3、不同页面跳转时各页面生命周...
    99+
    2022-11-13
  • Vue父子组件生命周期的执行顺序及钩子函数
    这篇文章主要介绍“Vue父子组件生命周期的执行顺序及钩子函数”,在日常操作中,相信很多人在Vue父子组件生命周期的执行顺序及钩子函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • angular组件通讯和组件生命周期是什么
    本文小编为大家详细介绍“angular组件通讯和组件生命周期是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“angular组件通讯和组件生命周期是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2022-10-19
  • 关于uni-app页面Page和组件Component生命周期执行的先后顺序
    文档 页面生命周期 https://uniapp.dcloud.net.cn/tutorial/page.html#lifecycle组件生命周期 https://uniapp.dc...
    99+
    2023-05-17
    小程序 uni-app Page uni-app Component uni-app生命周期
  • Springboot事件和bean生命周期执行机制是什么
    今天小编给大家分享一下Springboot事件和bean生命周期执行机制是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。...
    99+
    2023-07-05
  • 微信APP生命周期及页面生命周期是什么
    本篇内容介绍了“微信APP生命周期及页面生命周期是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!小程序的启动流程我们画一个图来表示一下,...
    99+
    2023-06-30
  • vue生命周期是什么
    本篇内容介绍了“vue生命周期是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2022-10-19
  • laravel生命周期是什么
    Laravel的生命周期是指在处理一个HTTP请求时,从请求进入Laravel应用程序开始,到返回响应结束的整个过程。下面是Lara...
    99+
    2023-09-21
    laravel
  • thinkphp生命周期是什么
    ThinkPHP是一个基于PHP的开源框架,其生命周期指的是在一个请求到达服务器到返回响应的整个过程中,ThinkPHP框架在不同的...
    99+
    2023-08-24
    thinkphp
  • Springbean的生命周期是什么
    Spring Bean的生命周期可以分为以下几个阶段: 实例化(Instantiation):在容器启动时,Spring根据配置...
    99+
    2023-10-24
    Springbean
  • Vue的生命周期是什么
    本篇内容主要讲解“Vue的生命周期是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue的生命周期是什么”吧!生命周期生命周期的简单介绍生命周期又叫做:生命周期回调函数、生命周期函数、生命周...
    99+
    2023-06-29
  • Flutter的生命周期是什么
    今天小编给大家分享一下Flutter的生命周期是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一 这里看一下Statef...
    99+
    2023-07-06
  • android thread的生命周期是什么
    Android中的线程有以下几个生命周期:1. 新建状态(New):线程对象已经创建,但还没有调用start()方法。2. 就绪状态...
    99+
    2023-10-07
    android
  • vue中的生命周期是什么
    这篇文章给大家分享的是有关vue中的生命周期是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、什么是生命周期每一个组件都可能经历从创建,挂载,更新,卸载的过程。在这个过程中的某一个阶段,用于可能会想要添加一...
    99+
    2023-06-29
  • Spring Bean的生命周期是什么
    这篇“Spring Bean的生命周期是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring ...
    99+
    2023-07-05
  • Spring bean的生命周期是什么
    Spring bean的生命周期包括以下阶段:1. 实例化(Instantiation):在容器启动时,Spring根据配置信息或注...
    99+
    2023-08-24
    Spring bean
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作