Angular 构造函数中的服务与组件中作为提供者列出的服务之间的区别?
如果在组件中我将服务声明为: 供应商:Angular 构造函数中的服务与组件中作为提供者列出的服务之间的区别?,angular,typescript,Angular,Typescript,如果在组件中我将服务声明为: 供应商: @Component({ ... providers: [MyService]}) 在构造函数中: constructor(private myService: MyService) { ... } 是否有首选方法?当您在组件级别注册提供者时,您会在该组件的每个新实例中获得一个新的服务实例 当您在根级别提供服务时,Angular会创建一个单独的共享MyService实例,并将其注入任何请求它的类中 在@Injectable()元数据中注
@Component({
...
providers: [MyService]})
在构造函数中:
constructor(private myService: MyService) {
...
}
是否有首选方法?当您在组件级别注册提供者时,您会在该组件的每个新实例中获得一个新的服务实例 当您在根级别提供服务时,Angular会创建一个单独的共享MyService实例,并将其注入任何请求它的类中 在@Injectable()元数据中注册提供程序还允许Angular通过从编译的应用程序中删除服务(如果未使用)来优化应用程序
@Injectable({ providedIn: 'root' })
当您在组件级别注册一个提供程序时,您会在该组件的每个新实例中获得一个新的服务实例 当您在根级别提供服务时,Angular会创建一个单独的共享MyService实例,并将其注入任何请求它的类中 在@Injectable()元数据中注册提供程序还允许Angular通过从编译的应用程序中删除服务(如果未使用)来优化应用程序
@Injectable({ providedIn: 'root' })