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

49 浏览
0 Comments

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

这个问题已经有答案了

构造函数和ngOnInit之间的区别

我通过在构造函数中调用一个函数来创建了一个表单

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]
    });
  }

}

这两种方法之间有什么区别?哪一种更好?

admin 更改状态以发布 2023年5月25日
0
0 Comments

构造函数 :

ES6类(或此处的TypeScript)上的构造方法是类本身的一个特性,而不是Angular的特性。当构造函数被调用时,Angular无法控制,这意味着它不适合让你知道Angular何时完成了组件的初始化。

ngOnInit :

ngOnInit仅仅是一个信号,告诉我们Angular已经完成了组件的初始化,ngOnInit生命周期钩子是保证绑定是准备就绪的。

这里是一个有关此问题详细的优秀文章:查阅

还有更多关于此问题的讨论:

构造函数和ngOnInit之间的区别

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

0