【问题标题】:Why set up Dependency providers in angular?为什么要在 Angular 中设置依赖提供者?
【发布时间】:2021-05-29 12:00:08
【问题描述】:

我使用以下代码在 Angular 中创建了一些服务,其中 provideIn 作为 root。

@Injectable({
    providedIn: 'root'
}

这使得该服务可用于整个应用程序,我可以在任何我喜欢的地方导入它。这似乎很容易做到并且非常直观。但我正在阅读 Angular 文档并遇到了Angular Dependency providers。我理解它背后的概念是仅将服务公开给那些需要它的组件。但是我不明白这个有什么用?我们可以在根级别提供服务并在需要时访问。配置依赖提供程序是否有任何优化好处,或者仅仅是因为安全原因或任何其他原因?

【问题讨论】:

    标签: angular optimization design-patterns dependency-injection angular-dependency-injection


    【解决方案1】:

    您设置提供程序的方式仅取决于您的用例。许多解决方案都是可能的。 你可以在这里找到所有的细节 https://angular.io/guide/providers

    【讨论】:

    • 我正在研究更深入的知识。这些文档非常适合帮助如何实现一项功能,但他们没有说明为什么要使用一种方法而不是其他方法。
    【解决方案2】:

    所以在向社区询问并在线搜索后,我得出了这个结论。

    单例服务

    Beginning with Angular 6.0, the preferred way to create a singleton service is to set providedIn to root on the service's @Injectable() decorator. This tells Angular to provide the service in the application root. 这意味着我们应该使用 root 关键字,因为它执行一些优化(之前,您必须在某个模块中提供每个服务。这意味着您必须注意服务实际上是在某个地方提供的,而且它也意味着未使用的服务仍将被打包到您的包中(摇树),并且是 Angular 设计模式推荐的。请记住,此方法会创建该服务的单个实例。

    【讨论】:

      猜你喜欢
      • 2018-08-21
      • 2021-09-23
      • 2018-01-30
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多