【问题标题】:Angular2 directive, constructor vs onInit [duplicate]Angular2指令,构造函数与onInit [重复]
【发布时间】:2016-06-11 08:44:37
【问题描述】:

我只是想弄清楚Angular2中的指令中构造函数和onInit函数之间的区别是什么。对我来说,创建对象时似乎都使用了两者,那么为什么不只使用构造函数呢?

【问题讨论】:

标签: angular


【解决方案1】:

第一个(构造函数)与类实例化有关,与Angular2无关。我的意思是构造函数可以用于任何类。您可以在其中对新创建的实例进行一些初始化处理。

第二个对应Angular2组件的生命周期钩子:

  • ngOnChanges 在输入或输出绑定值更改时调用
  • ngOnInit 在第一个 ngOnChanges 之后调用

所以如果初始化处理依赖于组件的绑定(例如用@Input定义的组件参数),那么你应该使用ngOnInit,否则构造函数就足够了......

【讨论】:

  • 那么有理由不总是使用 onInit 吗?
  • 例如,如果您想使用注入的对象而不将它们设置为类属性...
  • 注入是在构造函数级别完成的。但是使用 ngOnInit 进行其他初始化很好;-)
猜你喜欢
  • 2016-06-21
  • 1970-01-01
  • 2017-03-02
  • 2014-01-29
  • 1970-01-01
  • 1970-01-01
  • 2018-05-30
  • 1970-01-01
  • 2012-02-04
相关资源
最近更新 更多