Angular2指令,构造函数与onInit [重复]
Posted
技术标签:
【中文标题】Angular2指令,构造函数与onInit [重复]【英文标题】:Angular2 directive, constructor vs onInit [duplicate] 【发布时间】:2016-06-11 08:44:37 【问题描述】:我只是想弄清楚Angular2中的指令中构造函数和onInit函数之间的区别是什么。对我来说,创建对象时似乎都使用了两者,那么为什么不只使用构造函数呢?
【问题讨论】:
看看这个***.com/a/35763811/5043867 【参考方案1】:第一个(构造函数)与类实例化有关,与Angular2无关。我的意思是构造函数可以用于任何类。您可以在其中对新创建的实例进行一些初始化处理。
第二个对应Angular2组件的生命周期钩子:
ngOnChanges
在输入或输出绑定值更改时调用
ngOnInit
在第一个 ngOnChanges
之后调用
所以如果初始化处理依赖于组件的绑定(例如用@Input
定义的组件参数),那么你应该使用ngOnInit
,否则构造函数就足够了......
【讨论】:
那么有理由不总是使用 onInit 吗? 例如,如果您想使用注入的对象而不将它们设置为类属性... 注入是在构造函数级别完成的。但是使用 ngOnInit 进行其他初始化很好;-)以上是关于Angular2指令,构造函数与onInit [重复]的主要内容,如果未能解决你的问题,请参考以下文章
为啥在 Angular 2 的构造函数中编写初始化逻辑不是一个好习惯
不能在 Angular 构造函数或 OnInit 中放置断点
了解angularjs中的生命周期钩子函数$onInit,$onChange,$onDestory,$postLink