Angular 2 服务:正确的用例
Angular 2 service : correct use case
我最近2个月一直在学习Angular2,在使用这些服务时有点迷茫。如果我正在开发一个包含多个组件的应用程序,并且每个组件都有一组要从 Web 服务显示的数据,如果它们是在同一模型上构建的,我是否可以使用单个服务来显示数据,或者我是否应该通过以下方式创建一个服务组件?
在此先感谢您就此事给予我启发
服务 classes(提供者)用 @Injectable 修饰,可以是:
- 你在提供者的@ngModule 中的 app-module.ts 中定义它们的单例:[] array
- 注入 @Component 装饰器用于单个服务无法完成的用例。
如果您的服务包含状态,那么单例可能会导致副作用,这就是您将它们放在 @Component
中的时候
文档在这里具有误导性。向下滚动到元数据属性:查看 'providers:'
您可以拥有无状态服务,例如始终返回 Observables。
即在 HTML 模板后面的组件 Typescript 中订阅被调用的服务。
- 组件 class 具有可观察的属性
- html 模板使用 observable class 属性 和 aysnc pipe。 |异步
您可以在多个组件中使用一个服务,而不需要为每个组件创建一个唯一的服务。
Instead of copying and pasting the same code over and over, you'll
create a single reusable data service and inject it into the
components that need it.
此外,服务是单例的,组件中的所有实例都是相同的(它基于分层注入器)。
我最近2个月一直在学习Angular2,在使用这些服务时有点迷茫。如果我正在开发一个包含多个组件的应用程序,并且每个组件都有一组要从 Web 服务显示的数据,如果它们是在同一模型上构建的,我是否可以使用单个服务来显示数据,或者我是否应该通过以下方式创建一个服务组件?
在此先感谢您就此事给予我启发
服务 classes(提供者)用 @Injectable 修饰,可以是:
- 你在提供者的@ngModule 中的 app-module.ts 中定义它们的单例:[] array
- 注入 @Component 装饰器用于单个服务无法完成的用例。
如果您的服务包含状态,那么单例可能会导致副作用,这就是您将它们放在 @Component
中的时候文档在这里具有误导性。向下滚动到元数据属性:查看 'providers:'
您可以拥有无状态服务,例如始终返回 Observables。
即在 HTML 模板后面的组件 Typescript 中订阅被调用的服务。
- 组件 class 具有可观察的属性
- html 模板使用 observable class 属性 和 aysnc pipe。 |异步
您可以在多个组件中使用一个服务,而不需要为每个组件创建一个唯一的服务。
Instead of copying and pasting the same code over and over, you'll create a single reusable data service and inject it into the components that need it.
此外,服务是单例的,组件中的所有实例都是相同的(它基于分层注入器)。