Angular2/4 生命周期回调函数


Lifecycle sequence(生命周期流程)

After creating a component/directive by calling its constructor, Angular calls the lifecycle hook methods in the following sequence at specific moments:

Hook Purpose and Timing
ngOnChanges()

Respond when Angular (re)sets data-bound input properties. The method receives a SimpleChanges object of current and previous property values.

Called before ngOnInit() and whenever one or more data-bound input properties change.

ngOnInit()

Initialize the directive/component after Angular first displays the data-bound properties and sets the directive/component's input properties.

Called once, after the first ngOnChanges().

ngDoCheck()

Detect and act upon changes that Angular can't or won't detect on its own.

Called during every change detection run, immediately after ngOnChanges() and ngOnInit().

ngAfterContentInit()

Respond after Angular projects external content into the component's view.

Called once after the first ngDoCheck().

A component-only hook.

ngAfterContentChecked()

Respond after Angular checks the content projected into the component.

Called after the ngAfterContentInit() and every subsequent ngDoCheck().

A component-only hook.

ngAfterViewInit()

Respond after Angular initializes the component's views and child views.

Called once after the first ngAfterContentChecked().

A component-only hook.

ngAfterViewChecked()

Respond after Angular checks the component's views and child views.

Called after the ngAfterViewInit and every subsequent ngAfterContentChecked().

A component-only hook.

ngOnDestroy

Cleanup just before Angular destroys the directive/component. Unsubscribe Observables and detach event handlers to avoid memory leaks.

Called just before Angular destroys the directive/component.



AngularJS的生命周期函数包括构造函数、编译、链接、注册监视、模型变化、观察和摧毁。\[1\]\[2\]在构造函数中,除了对局部变量进行初始化外,不应该做其他操作。编译阶段是AngularJS遍历浏览器提供的DOM树,尝试匹配已注册的指令集来处理元素、属性、注释和CSS类。每当匹配一个指令时,AngularJS会调用该指令的编译函数,并收集所有的连接函数。链接阶段是创建作用域,并通过调用每个指令对应的连接函数将指令和作用域连接起来。注册监视阶段是指令在作用域上注册一个监视,用于监测数据的变化。模型变化阶段是当模型发生变化时,执行用户定义的回调函数AngularJS会调用内置指令$scope.$apply,将操作转移到AngularJS的环境中。观察阶段启动脏检测机制,检测根作用域和所有子作用域上的变化,并执行$watch的回调函数。摧毁阶段是当不再需要一个作用域时,使用$scope.$destroy()方法将其移除。\[2\]在AngularJS中,可以通过在根主键(父组件)中定义方法来处理生命周期函数。\[3\] #### 引用[.reference_title] - *1* *3* [Angular 中的生命周期函数(生命周期钩子)](https://blog.csdn.net/I_r_o_n_M_a_n/article/details/114988622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [AngularJs的生命周期](https://blog.csdn.net/yanghang180/article/details/80844499)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值