angular生命周期钩子

简介: angular生命周期钩子

angular的每个组件都存在生命周期,从创建,变更到销毁。angular提供组件生命周期钩子,把这些关键时刻暴露出来。赋予在关键节点和组件进行交互的能力。

概述
每个接口都有唯一的一个钩子方法,它们的方法是由接口名再加上ng前缀构成的。比如,OnInit的接口钩子的方法叫ngOnInit,angular在创建组件之后调用。

生命周期执行顺序
ngOnChanges
在有输入属性的时候才会调用,该方法接收一个类型为SimpleChanges的对象,如果有输入属性,会在ngOnInit之前调用。
SimpleChanges的值包含:previousValue:any,currentValue:any,firstChange:boolean

ngOnInit
组件初始化,只调用一次,在第一次调用ngOnChange时调用。

ngDoCheck
在组件定义的属性或方法变更时调用(用于脏值检查,非常消耗性能,因为会把所有的属性和方法都检查一遍),会在ngOnChange和ngOnInit之后调用。

ngAfterContentInit
在组件内容初始化之后调用,在第一次ngDoCheck之后调用,只调用一次。

ngAfterContentChecked
在组件每次检查内容发生变更时调用。在ngAfterContentInit和每次ngDoCheck之后调用。

ngAfterViewInit
在组件相应的视图初始化之后调用,第一次ngAfterContentCheck之后调用,只调用一次。

ngAfterViewChecked
在组件每次检查视图发生变更时调用,在ngAfterViewInit和每次ngAfterContentChecked之后调用。

ngOnDestroy
在组件销毁前调用,做一些清理工作,比如退订可观察对象(subscription)和移除事件处理器,以免导致内存泄漏。

constructor和ngOnInit

constructor是ES6中class中新增的属性,当class类实例化的时候调用constructor来初始化类。angular中的组件是基于class类实现的,在angular中,constructor用来依赖注入。
ngOnInit是angular生命周期的一部分,在constructor之后执行,在angular中用于初始化变量和数据绑定。
ngAfterContentInit和ngAfterViewInit的区别

view:是当前组件的模板。
content:通常指被映射到一个组件的ng-content中的内容。
视图初始化在内容之后,所以ngAfterViewInit在ngAfterContentInit之后执行。

相关文章
|
JavaScript 前端开发
Angular 的生命周期
组件从开始建立到销毁的过程中,会经历过一系列的阶段。这就是一个生命周期,这些阶段对应着应用提供的 lifecycle hooks。那么,在 angular 中,这些 hooks 都有哪些呢?
Angular 的生命周期
Angular 2 组件的生命周期简要
接口 OnInit OnDestroy DoCheck OnChanges AfterContentInit AfterContentChecked AfterViewInit AfterViewChecked 函数名 ngOnChanges - 当输...
831 0
Angular2生命周期钩子函数
Angular每个组件都存在一个生命周期,从创建,变更到销毁。Angular提供组件生命周期钩子,把这些关键时刻暴露出来,赋予在这些关键结点和组件进行交互的能力,掌握生命周期,可以让我们更好的开发Angular应用 概述 每个接口都有唯一的一个钩子方法,它们的名字是由接口名再加上ng前缀构成的。
1075 0
|
2月前
|
缓存 JavaScript 前端开发
Angular 应用打包和部署
Angular 应用打包和部署
171 58
|
14天前
|
缓存 监控 JavaScript
Angular 应用打包和部署
【10月更文挑战第16天】Angular 应用的打包和部署是一个综合性的过程,需要考虑多个方面的因素。通过合理的打包和部署策略,可以确保应用在生产环境中稳定运行,并为用户提供良好的体验。你需要根据实际情况选择合适的部署方式,并不断优化和改进部署流程,以适应业务的发展和变化。
|
3月前
|
应用服务中间件 Java Maven
掌控视图的力量!深入解析 JSF 视图管理,揭秘视图生命周期的秘密,让你的应用更高效!
【8月更文挑战第31天】JavaServer Faces (JSF) 是一种强大的框架,用于管理 Web 应用程序的视图。本文通过具体案例介绍 JSF 视图管理的基础知识,包括创建、管理和销毁视图的过程。首先,在 Eclipse 中创建一个新 JSF 项目,并配置 Maven 依赖。接着,在 `WEB-INF` 目录下配置 `web.xml` 文件,设置 JSF servlet。
52 0
|
3月前
|
Java Spring
🔥JSF 与 Spring 强强联手:打造高效、灵活的 Web 应用新标杆!💪 你还不知道吗?
【8月更文挑战第31天】JavaServer Faces(JSF)与 Spring 框架是常用的 Java Web 技术。本文介绍如何整合两者,发挥各自优势,构建高效灵活的 Web 应用。首先通过 `web.xml` 和 `ContextLoaderListener` 配置 Spring 上下文,在 `applicationContext.xml` 定义 Bean。接着使用 `@Autowired` 将 Spring 管理的 Bean 注入到 JSF 管理的 Bean 中。
59 0
|
3月前
|
开发者 Java 开发框架
JSF与EJB,打造企业级应用的神器!让你的Web应用更加稳定、高效!
【8月更文挑战第31天】在现代企业级应用开发中,JSF(JavaServer Faces)与EJB(Enterprise JavaBeans)是两大核心技术。JSF作为一款基于Java的Web应用框架,以其丰富的UI组件和表单处理功能著称;EJB则专注于提供分布式事务处理及远程调用等企业级服务。两者的结合为企业应用带来了高效便捷的开发模式。下文将通过一个简单的示例展示如何利用JSF进行用户信息的输入与保存,并借助EJB实现相关业务逻辑。尽管这一组合具有明显优势,但在实际应用中还需考虑其局限性并作出合理选择。
52 0
|
3月前
|
开发者 安全 SQL
JSF安全卫士:打造铜墙铁壁,抵御Web攻击的钢铁防线!
【8月更文挑战第31天】在构建Web应用时,安全性至关重要。JavaServer Faces (JSF)作为流行的Java Web框架,需防范如XSS、CSRF及SQL注入等攻击。本文详细介绍了如何在JSF应用中实施安全措施,包括严格验证用户输入、使用安全编码实践、实施内容安全策略(CSP)及使用CSRF tokens等。通过示例代码和最佳实践,帮助开发者构建更安全的应用,保护用户数据和系统资源。
51 0