繁体   English   中英

角度服务装饰器提供了对延迟加载的根效果

[英]Angular service decorator providedIn root effect on lazy loading

我想知道如何新的角度服务装饰

@Injectable({
    providedIn: 'root'
})

与延迟加载一起工作。 这意味着如果我有一个延迟加载的模块,并且提供了一个在root中提供的服务,那么这将包括应用程序基本代码中的特定服务。 应用程序root chunks.js或者这仍然会延迟加载服务,然后在我懒加载该模块时使其成为全局单例。

有关提供的信息

https://angular.io/guide/ngmodule-faq

是的,在这种情况下,它将只是延迟加载的模块/块的一部分。 使用providedIn: 'root' ,Angular编译器会自动找出完美的方法:

  1. 该服务将作为单例应用程序提供,无需将其添加到模块的提供程序数组(如Angular <= 5)。
  2. 如果该服务仅在延迟加载的模块中使用,则它将延迟加载该模块
  3. 如果从未使用它,它将不会包含在构建中(树抖动)。

有关更多信息,请阅读文档NgModule常见问题解答

BTW:

  1. 如果您不想要应用程序范围的单例,请使用提供程序的组件数组。
  2. 如果您想限制范围,以便其他开发人员不会在特定模块之外使用您的服务,请使用提供程序的NgModule数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM