在根应用模块或根应用组件中注册服务



在任何地方,建议在根AppModule提供程序数组中注册服务,并避免使用根AppComponent的提供程序数组。 何时应该有人在根应用程序组件中注册服务?任何实际的例子。 与根应用组件相比,在根应用模块中注册服务的优势是什么?

在根目录注册时,所提供的服务将创建为单例,与在组件中提供相反,它将创建与您使用该组件一样多的实例。

换句话说:
注入到根级别的服务将在整个应用程序中可访问。
在组件级别提供的服务将仅在该组件及其子组件上可用。

如果您在多个组件(@Component({ ...providers: [] ..}(中注入服务,则每个组件都将获得自己的实例,并且它们的子级将共享同一实例。
如果在根级别 (@NgModule({ ... providers: []}( 中注入,则所有组件将共享同一个实例。

在此处阅读更多内容

您可以在 app.module 或 app.component 中注册服务。不同之处在于,当您在 app.module 中注册服务时,它可以作为依赖项注入到任何组件和服务中,但在 app.component 中注册它只能作为依赖项注入到组件

不能将服务注册到组件中。每个服务都需要注册到一个模块中。

@NgModule({
imports: [
CommonModule,
etc
],
declarations: [
AppComponent,
Other components and stuff related to this module
],
exports: [
What you want to export if this module is imported by another
],
providers: [
YourService 
]

例如,我将所有服务保存在"CoreModule"中,而我只是在AppRoot中导入CoreModule。

希望对这个答案有所帮助。

最新更新