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

当我们谈论 OnInit 时,Angular 2+ 中组件初始化的确切含义是啥?

Angular2幻灯片

如何在 Angular 2 中调用其构造函数之前将数据发送或绑定到子组件?