-1

我曾经听说过使用共享服务在 Angular 中的非相关组件之间共享数据的术语。但是每个服务是否都是共享服务?如果是,那么它与共享服务有何不同?

4

2 回答 2

1
  1. 如果您将服务添加到 app.module.ts - 您可以在每个组件中使用它,并且您将在任何地方获得保存数据
  2. 如果您在提供程序块中的 @Component 装饰器中包含服务 - 此服务将自动销毁
  3. 如果你有模块 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 回答