想必大家都不陌生constructor构造函数,这是ES6中引入的
在angulaur中constructor一般的作用,我们会再其中依赖注入,初始化默认值等操作。
ngOnInit
ngOnInit 用于在 Angular 获取输入属性后初始化组件,该钩子方法会在第一次 ngOnChanges 之后被调用
注意: 该钩子只会被调用一次.
parent.component.ts
1 | import { Component } from "@angular/core"; |
child.component.ts
1 | import { Component, Input, OnInit } from "@angular/core"; |
我们发现在 ChildComponent 构造函数中,是无法获取输入属性的值,而在 ngOnInit 方法中,我们能正常获取输入属性的值。因为 ChildComponent 组件的构造函数会优先执行,当 ChildComponent 组件输入属性变化时会自动触发 ngOnChanges 钩子,然后在调用 ngOnInit 钩子方法,所以在 ngOnInit 方法内能获取到输入的属性。
constructor应用场景
依赖注入,初始化值
ngOnInit 应用场景
在组件获取输入属性之后,需执行组件初始化操作
总结:
在 Angular 4 中 constructor 一般用于依赖注入或执行简单的数据初始化操作,ngOnInit 钩子主要用于执行组件的其它初始化操作或获取组件输入的属性值