gpt4 book ai didi

angular - 延迟加载和提供者策略

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

现在,使用 Angular v5,同时使用延迟加载,我将所有提供程序加载到 app.module.ts 中,我想这可能不是最好的策略,因为这不会加速我的应用程序启动时间,特别是因为我有大约 50 个自定义提供程序(不要评判我;))。

因此我问自己是否真的应该为我的所有应用程序加载所有这些,或者我是否应该只在我只使用它们的地方加载它们?

我猜最好只在我真正使用它们的地方加载提供程序。

但在这种情况下,我完全不清楚如何解决以下结构:

假设我有三个页面(A、B 和 C),它们有自己的模块和三个提供商(1、2 和 3)。

A use 1
B use 1, 2, 3
C use 1, 2
  • 我猜,因为 1 在所有应用程序中使用,我必须在 app.module.ts

  • 中声明它
  • 由于 3 仅在页面 B 中使用,我想我只能在 B.module.ts

  • 中声明它
  • 但是 2 呢?我如何在 B.module.tsC.module.ts 中声明它以共享相同的提供者“内存”(如果提供者包含一个值,B 和 C 应该看到相同的对象),分别我将如何编码?只需“像往常一样”注入(inject)提供程序,剩下的就是 Angular 了吗?

提前感谢任何帮助,将不胜感激

更新

不确定我是否正确理解了 Angular 文档,但这是目标,应该为所有应用程序加载提供程序,对吗?

https://angular.io/guide/ngmodule-faq#q-component-scoped-providers

2018 年更新

注入(inject)策略随着 Angular v6 的引入而发展。根据文档,可以使用 providedIn 指定应该在哪个模块中使用服务。参见 https://angular.io/guide/dependency-injection

最佳答案

您应该创建一个共享模块来增强您的提供者 2 并且 B 和 C 模块包含在它们的依赖项中。

编辑:您不需要导出提供者。

关于angular - 延迟加载和提供者策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46708526/

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