广告
返回顶部
首页 > 资讯 > 精选 >Angular组件中生命周期钩子的示例分析
  • 290
分享到

Angular组件中生命周期钩子的示例分析

2023-06-14 20:06:36 290人浏览 八月长安
摘要

这篇文章主要介绍了angular组件中生命周期钩子的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular 组件生命周期钩子其中,红色标记的生命周期钩子只调用一

这篇文章主要介绍了angular组件中生命周期钩子的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Angular 组件生命周期钩子


Angular组件中生命周期钩子的示例分析

其中,红色标记的生命周期钩子只调用一次,绿色部分会被反复调用,执行顺序依次由上而下。

ngOnChanges

当 Angular 设置数据绑定输入属性发生变化时响应,只对输入的不可变对象起作用。简单地讲就是,@Input 标记的属性发生变化的时候被调用,非 @Input 标记的属性改变不会调用 nGonChanges。

ngOnInit

在第一次 ngOnChanges 执行之后调用,并且只被调用一次。它主要用于执行组件的其它初始化操作或获取组件输入的属性值。

ngDoCheck

组件的输入属性发生变化时,将会触发 ngDoCheck 方法,我们可以使用该方法,自定义我们的检测逻辑。【相关推荐:《angular教程》】

注意: 不要在 ngDoCheck 里面做非常复杂的事情,使用时要比较精准的定义检查位置,否则会造成性能问题。因为任何变化,比如鼠标的点击事件或键盘的输入事件都会触发 ngDoCheck。

变更检测

Angular组件中生命周期钩子的示例分析

变更检测策略

  • Default 策略
    当组件树中有任何一个组件发生改变时,整个组件树都会被检测一遍。

  • onPush 策略
    当一个组件发生改变时,如果其子组件使用的是 onPush 策略,则不会对其进行检测。只有在子组件的 @Input 输入属性发生改变时,才会进行检测。

ngAfterViewInit 和 ngAfterViewChecked

ngAfterViewInit 和 ngAfterViewChecked 钩子会在组件的模板的所有内容被装配完毕,组件的模板已经呈现给用户后被触发,装配过程是从子组件向父组件依次进行,而且 ngAfterViewInit 在 ngAfterViewChecked 之前被触发。

ngAfterViewInit 钩子只会在组件初始化完毕后被触发一次,而 ngAfterViewChecked 钩子在组件变更时都会被触发,所以此钩子的实现一定要精简,不然会引起性能问题。

在这两个钩子里面不能再修改组件上被绑定的属性,否则会抛出异常。

@ViewChild 装饰器和 ElementRef 元素参阅

在实际应用中,可通过这个两个元素获取视图层的 DOM 元素,对获取的 DOM 元素进行操作。

// .ts 文件中声明@ViewChild('inputElem')inputElem: ElementRef;// 获取Dom元素的值const value = this.inputElem.nativeElement.value;// .html 文件中使用<input nz-input type="text" #inputElem>

ngAfterContentInit 和 ngAfterContentChecked

这两个钩子是在投影内容装配完成之后执行的,而那个时候整个模板还没有装配完成,所以在这两个钩子里面可以修改被绑定的属性。

投影

在某些情况下,需要动态改变组件模板的内容,而这些内容没有复杂的业务逻辑,也不需要重用,只是一小部分 HTML 片段,这个时候可以使用 Angular 提供的一个特性,叫做投影。在 Angular 里面可以使用 ng-content 指令将父组件模板中的任意片段投影到它的子组件上。

需要注意的是,自定义的组件的标签内部是不可以嵌套其他标签的,它不像一般的 HTML 标签可以嵌套,但可以使用投影实现嵌套。

app.component.html

<div class="wrapper">  <h2>我是父组件</h2>  <div>这个 div 定义在父组件</div>  <!-- 将要投影的内容写在子组件的标签之间 -->  <app-child>    <div class="header">这个是页头。这个 div 是父组件投影到子组件的。</div>    <div class="footer">这个是页脚。</div>  </app-child></div>

child.component.html

<div class="wrapper">  <h2>这是子组件</h2>  <!-- ng-content是投影点 -->  <ng-content select=".header"></ng-content>  <div>这个div定义在子组件中</div>  <ng-content select=".footer"></ng-content></div>

其中,使用 select 属性可以实现针对性的内容投影。但是,需要注意的是,select 属性对应的值所指定的标签节点必须是组件下的直接子节点。否则,select属性无效。

ngAfterContentInit 和 ngAfterContentChecked 小结

  • ngAfterContentInit 和 ngAfterContentChecked 钩子在组件要投影的内容装配完毕以后才会被触发,ngAfterContentInit 在 ngAfterContentChecked 之前被触发。

  • 如果组件有子组件,父组件的这两个钩子先被触发,子组件的这两个钩子在父组件投影内容装配完毕后触发。

感谢你能够认真阅读完这篇文章,希望小编分享的“Angular组件中生命周期钩子的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Angular组件中生命周期钩子的示例分析

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

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

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

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

下载Word文档
猜你喜欢
  • Angular组件中生命周期钩子的示例分析
    这篇文章主要介绍了Angular组件中生命周期钩子的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Angular 组件生命周期钩子其中,红色标记的生命周期钩子只调用一...
    99+
    2023-06-14
  • angular4生命周期钩子的示例分析
    这篇文章主要介绍angular4生命周期钩子的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!理解Angular提供了生命周期钩子,把这些关键生命时刻暴露出来,赋予我们在它们发...
    99+
    2022-10-19
  • vue组件生命周期钩子使用示例详解
    目录组件生命周期图组件生命周期钩子1、beforeCreate2、created3、beforeMount4、mounted5、beforeUpdate6、updated7...
    99+
    2022-11-13
  • Vue 2.0中生命周期与钩子函数的示例分析
    小编给大家分享一下Vue 2.0中生命周期与钩子函数的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue生命周期简介咱...
    99+
    2022-10-19
  • vue的生命周期钩子与父子组件的生命周期详解
    目录vue的生命周期钩子的介绍父子组件的生命周期加载渲染过程父组件更新过程子组件更新过程父子组件更新过程销毁过程代码示例created和mounted的区别vue的生命周期钩子的介绍...
    99+
    2022-11-13
    vue 生命周期 vue 父子组件生命周期
  • Angular中的生命周期实例分析
    今天小编给大家分享一下Angular中的生命周期实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2022-10-19
  • Flutter组件生命周期和App生命周期示例解析
    目录引言无状态组件(StatelessWidget)有状态组件(StatefulWidget)StatefulWidget生命周期详细分析1. createState2. initS...
    99+
    2022-12-08
    Flutter 组件APP生命周期 Flutter 生命周期
  • Vue组件和Route生命周期的示例分析
    这篇文章主要为大家展示了“Vue组件和Route生命周期的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue组件和Route生命周期的示例分析”这篇文...
    99+
    2022-10-19
  • Vue组件生命周期实例分析
    本文小编为大家详细介绍“Vue组件生命周期实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue组件生命周期实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. 组件的生命周期的四个阶段组件的生命周...
    99+
    2023-06-27
  • React中生命周期的示例分析
    这篇文章将为大家详细讲解有关React中生命周期的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。React的生命周期两张图带你理解 React的生命周期React的生命周期(旧)class&nbs...
    99+
    2023-06-20
  • Vue中生命周期的示例分析
    这篇文章将为大家详细讲解有关Vue中生命周期的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最简单的Vue 实例//html <div id=&q...
    99+
    2022-10-19
  • Vue2.0生命周期的示例分析
    这篇文章主要为大家展示了“Vue2.0生命周期的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vue2.0生命周期的示例分析”这篇文章吧。网上已经有很多...
    99+
    2022-10-19
  • vue生命周期的示例分析
    这篇文章主要介绍了vue生命周期的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。vue生命周期图解感谢你能够认真阅读完这篇文章,希望小编分享的“vue生命周期的示例分...
    99+
    2023-06-14
  • 分析React中组件的生命周期
    这篇文章主要讲解了“分析React中组件的生命周期”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析React中组件的生命周期”吧!初始化在组件初始化阶段会...
    99+
    2022-10-19
  • docker中pod生命周期的示例分析
    这篇文章给大家分享的是有关docker中pod生命周期的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 查看资源配置清单帮助  [root@master manifests]...
    99+
    2023-06-04
  • Vue中生命周期过程的示例分析
    这篇文章主要介绍Vue中生命周期过程的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Vue 提供了11个钩子函数1,从创建到销毁发生的一系列状态叫做什么周期,在这个过程中vu...
    99+
    2022-10-19
  • React中的生命周期和子组件
    目录组件生命周期创建创建期获取虚拟DOM子组件组件生命周期 为了说明组件的创建,存在,销毁的过程,react提供了组件的生命周期,共分三大周期: 创建期:说明组件的创建的过程,相当于...
    99+
    2022-11-13
  • Vue父子组件生命周期的执行顺序及钩子函数
    这篇文章主要介绍“Vue父子组件生命周期的执行顺序及钩子函数”,在日常操作中,相信很多人在Vue父子组件生命周期的执行顺序及钩子函数问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2022-10-19
  • Rust语言生命周期的示例分析
    本篇文章为大家展示了Rust语言生命周期的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Rust 官方博客发布了 2020 年度的 Rust 调查报告。此次...
    99+
    2022-10-19
  • 基于Vue生命周期的示例分析
    这篇文章主要介绍基于Vue生命周期的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!前言Vue实例在创建时有一系列的初始化步骤,例如建立数据观察,编译模板,创建数据绑定等。在此...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作