如果我在构造函数和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日
构造函数 :
ES6类(或此处的TypeScript)上的构造方法是类本身的一个特性,而不是Angular的特性。当构造函数被调用时,Angular无法控制,这意味着它不适合让你知道Angular何时完成了组件的初始化。
ngOnInit :
ngOnInit仅仅是一个信号,告诉我们Angular已经完成了组件的初始化,ngOnInit生命周期钩子是保证绑定是准备就绪的。
这里是一个有关此问题详细的优秀文章:查阅
还有更多关于此问题的讨论: