如果我在构造函数和ngOnInit中创建一些东西有什么区别?

时间:2018-02-09 09:26:28

标签: angular

我通过调用构造函数

中的函数创建了一个表单
constructor(private userManagementService: UserManagementService, private fb:FormBuilder) {
    this.createForm();
  }

  createForm(){
    this.signupForm = this.fb.group({
      firstName:['',Validators.required], 
      lastName:['',Validators.required],
      email:['',Validators.required],
      password:['',Validators.required]
    });
  }

我想我也可以在ngOnInit

中创建表单
constructor(private fb:FormBuilder) {

  }


ngOnInit{

    this.signupForm = this.fb.group({
      firstName:['',Validators.required], 
      lastName:['',Validators.required],
      email:['',Validators.required],
      password:['',Validators.required]
    });
  }

}

这两种方法有什么区别?一个比另一个好吗?

1 个答案:

答案 0 :(得分:1)

构造函数:

  

ES6类(或本例中为TypeScript)的构造函数方法是   类本身的一个特征,而不是一个角度特征。它出来了   调用构造函数时Angular的控件,这意味着   当Angular完成时,它不是一个让你知道的合适钩子   初始化组件。

ngOnInit:

  

ngOnInit纯粹是为了给我们一个Angular已经完成的信号   初始化组件,ngOnInit生命周期钩子是一个   保证您的绑定随时可用。

以下是关于它的精彩文章: READ

对此有很多讨论,如:

Difference between Constructor and ngOnInit

https://blog.angularindepth.com/the-essential-difference-between-constructor-and-ngoninit-in-angular-c9930c209a42