何时使用构造函数以及何时使用OnInit

时间:2016-02-21 12:54:30

标签: javascript angular

所以我一直在阅读角度2,有两种方法可以做同样的事情,但我不知道它的根本区别,如果有的话。

考虑以下

构造

export class MyComponent {
  myAge: number;

  constructor(){
   this.myAge = 24;
  }
}

的OnInit

export class MyComponent implements OnInit{
  myAge: number;

  ngOnInit(): any {
    this.myAge = 24;
  }
}

1 个答案:

答案 0 :(得分:5)

第一个与类实例化有关,与Angular2无关。我的意思是构造函数可以在任何类上使用。您可以为新创建的实例添加一些初始化处理。

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

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

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

在你的情况下使用构造函数就足够了。