gpt4 book ai didi

angular - 正在为任何非延迟加载模块使用 @Injectable providedIn 与 providedIn : "root"? 相同

转载 作者:太空狗 更新时间:2023-10-29 17:35:21 26 4
gpt4 key购买 nike

我已经彻底阅读了文档,虽然我找不到它的确切引用位置,但我的印象是在急切加载的模块的 providers 数组中声明服务将使单例可用到应用范围。如果这是真的,

Is using @Injectable providedIn for any non-lazy-loaded module the same as providedIn: "root"?

最佳答案

是的,它是一样的。

一般来说,你应该总是在 @Injectable 声明中使用 providedIn: "root"语法。当它刚加载到一个模块中时,它甚至可以使用延迟加载,因此在 Angular 加载模块之前不会加载服务。这是一种更好的构建方式。

我认为除了偏好 providedIn 之外仅有的两个异常(exception)是1)您想在组件中声明它。这将导致它不是单例,而是限定在组件范围内2) 您在两个单独的模块中使用它,但是两个延迟加载模块(并且它也没有在初始加载中使用),在这种情况下,我相信最好的选择是通过在初始加载时将它引入 AppModule 来热切地加载它。

关于angular - 正在为任何非延迟加载模块使用 @Injectable providedIn 与 providedIn : "root"? 相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52120279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com