Angular服务使用心得总结如何优化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1679个文字,预计阅读时间需要7分钟。
依赖注入+创建服务需要使用@Injectable装饰器,将类标记为可注入的服务。在使用该服务之前,需要配置好Angular的依赖注入器。实际上,Angular无法将服务注入到任何位置。
依赖注入
创建服务需要用到Injectable,@Injectable() 装饰器把类标记为可供注入的服务,不过在使用该服务的 provider 配置好 Angular 的依赖注入器之前,Angular 实际上无法将其注入到任何位置。
provider告诉注入器如何创建该服务,可以通过设置元数据来配置注入器(3种方式):
- 在服务本身的 @Injectable() 装饰器中。
- 在 NgModule 的 @NgModule() 装饰器中。
- 在组件的 @Component() 装饰器中。
@Injectable() 装饰器具有一个名叫 providedIn 的元数据选项,在这里指定把被装饰类的provider放到 root 注入器中,或某个特定 NgModule 的注入器中。
@NgModule() 和 @Component() 装饰器都有用一个 providers 元数据选项,在那里你可以配置 NgModule 级或组件级的注入器。
注入器与服务实例
在某个注入器范围内,服务是单例的。应用只有一个根注入器,angular具有多级注入器系统,以为者下级注入器可以创建自己的服务实例。
每当 Angular 创建一个在 @Component() 中指定了 providers 的组件实例时,它也会为该实例创建一个新的子注入器。
本文共计1679个文字,预计阅读时间需要7分钟。
依赖注入+创建服务需要使用@Injectable装饰器,将类标记为可注入的服务。在使用该服务之前,需要配置好Angular的依赖注入器。实际上,Angular无法将服务注入到任何位置。
依赖注入
创建服务需要用到Injectable,@Injectable() 装饰器把类标记为可供注入的服务,不过在使用该服务的 provider 配置好 Angular 的依赖注入器之前,Angular 实际上无法将其注入到任何位置。
provider告诉注入器如何创建该服务,可以通过设置元数据来配置注入器(3种方式):
- 在服务本身的 @Injectable() 装饰器中。
- 在 NgModule 的 @NgModule() 装饰器中。
- 在组件的 @Component() 装饰器中。
@Injectable() 装饰器具有一个名叫 providedIn 的元数据选项,在这里指定把被装饰类的provider放到 root 注入器中,或某个特定 NgModule 的注入器中。
@NgModule() 和 @Component() 装饰器都有用一个 providers 元数据选项,在那里你可以配置 NgModule 级或组件级的注入器。
注入器与服务实例
在某个注入器范围内,服务是单例的。应用只有一个根注入器,angular具有多级注入器系统,以为者下级注入器可以创建自己的服务实例。
每当 Angular 创建一个在 @Component() 中指定了 providers 的组件实例时,它也会为该实例创建一个新的子注入器。

