我曾经听说过使用共享服务在 Angular 中的非相关组件之间共享数据的术语。但是每个服务是否都是共享服务?如果是,那么它与共享服务有何不同?
问问题
70 次
2 回答
1
- 如果您将服务添加到 app.module.ts - 您可以在每个组件中使用它,并且您将在任何地方获得保存数据
- 如果您在提供程序块中的 @Component 装饰器中包含服务 - 此服务将自动销毁
- 如果你有模块 A、B 和 C 以及 B 中包含的一些服务。当你在模块 C 中使用延迟加载组件时,有时不会有来自模块 B 的服务(如果刷新从模块 C 呈现的组件上的页面)
所以共享服务和正常 服务之间的区别- 它们包含在哪里。
app.module - 到处共享
模块 B - 仅对包含在模块 B 中的子模块共享。
组件提供者(@Component({providers: [...]})) - 仅在本地,将与组件一起销毁
于 2021-06-29T11:52:11.170 回答
0
您可以在组件装饰器中提供服务,使其仅在该组件本地可用。
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
providers: [MyService]
})
于 2021-06-29T11:46:57.923 回答