pap*_*iro 5 angular angular-di
我已经仔细阅读了文档,尽管找不到确切的引用位置,但我的印象是,在急切加载的模块providers数组中声明服务将使单例适用于应用程序范围。如果这是真的,
是使用
@InjectableprovidedIn任何非延迟加载模块一样providedIn: "root"?
是的,它是一样的。
通常,您应该始终只在 @Injectable 声明中使用 providedIn: "root" 语法。当它刚刚加载到一个模块中时,它甚至可以使用延迟加载,因此在 angular 加载模块之前不会加载服务。它是一种更好的构造方式。
我认为首选providedIn的唯一2个例外是1)您想在组件中声明它。这将导致它不是一个单例,而是限定于组件 2)您在 2 个单独的模块中使用它,但是两个延迟加载的模块(并且它也没有在初始加载中使用),在这种情况下我相信最好的选择通过在初始加载时将其带入 AppModule 来急切地加载它。
| 归档时间: |
|
| 查看次数: |
226 次 |
| 最近记录: |