我知道ngOnInit()
和构造函数不同的一些事实。我也碰到过很多例子,其中服务是在ngOnInit()
方法中定义的,而不是在构造函数中定义的,反之亦然。
但是Angular禁止在构造函数级别使用服务。与ngOInit()
上定义服务相比,这样做是否带来了什么好处?
示例:
export class App implements OnInit{
constructor(private userService: UserService){
userService.getDetails();
}
ngOnInit(){
userService.getDetails();
}
答案 0 :(得分:1)
ngOnInit()
挂钩是Angular生命周期挂钩之一。
您提供的示例可以像您注意到的那样工作,但是它受到限制,因为您无法访问构造函数中的任何@Input()
变量。因此,如果要将参数从@Input()
传递到服务函数,则您的模式将不起作用。
作为一种好习惯,请始终使用ngOnInit()
而不是构造函数来进行组件初始化,因为一切都会正常进行,而构造函数模式并不能在每个用例中都起作用。