在ngOnInit而不是Angular中的Constructor中定义服务的好处



我知道ngOnInit()和构造函数不同的一些事实。我也遇到过许多例子,其中服务是在ngOnInit()方法中定义的,而不是在构造函数中定义的。

但是Angular并不禁止在构造函数级别使用服务。如果是这样的话,与在ngOInit()定义服务相比,这样做有什么好处?

示例:

export class App implements OnInit{
constructor(private userService: UserService){
userService.getDetails();
}
ngOnInit(){
userService.getDetails(); 
}  

ngOnInit()钩子是Angular生命周期钩子之一。正如您所注意到的那样,您提供的示例是有效的,但它是有限的,因为您不能访问构造函数中的任何@Input()变量。因此,如果您想将一个来自@Input()变量的参数传递给您的服务函数,那么您的模式将不起作用。作为一种好的做法,在初始化组件时始终使用ngOnInit()而不是构造函数,因为一切都会很好地工作,而构造函数模式不会适用于每个用例。

最新更新