在Angular文档中,有以下关于组件构造函数中代码的提示(我强调的第二段):
叫进去
ngOnInit虽然可以调用
getHeroes()构造函数,但这不是最佳实践。保留构造函数以进行简单的初始化,例如将构造函数参数连接到属性。构造函数不应该做任何事情。当然,不应像真正的数据服务那样调用向远程服务器发出HTTP请求的函数。
而是
getHeroes()在ngOnInit生命周期挂钩内调用ngOnInit,并在构造HeroesComponent实例后的适当时间让Angular调用。
服务方面呢?Observable在构造函数中进行HTTP调用(只是在本地存储异步请求的启动)是否也很糟糕?服务没有ngOnInit()事件,那么服务的最佳实践是什么?
我敢打赌,您可以找到一些可以毫无损害地使用构造函数的示例,但作为经验法则和最佳实践,请使用“角度构造函数”(也称为ngOnInit生命周期钩子)。
有时使用构造函数可能是不可能的或者需要额外的工作。例如,您需要使用服务从后端获取数据,因为 if @Input()data. 输入在 javascript 对象构造期间不绑定,但它们可以在ngOnInit
此外,如果您想对组件/服务进行单元测试怎么办?您为每个测试创建新实例(从而调用构造函数),并且您正在对模拟的 http 后端进行额外的调用,甚至最糟糕的是 - 调用一个实例。
| 归档时间: |
|
| 查看次数: |
2499 次 |
| 最近记录: |