如果在组件中我将服务声明为:
提供程序:
@Component({
...
providers: [MyService]})
而不是在构造函数中:
constructor(private myService: MyService) {
...
}
有没有更好的方法?
发布于 2019-12-04 02:33:02
当您在组件级别注册提供程序时,您将获得该组件的每个新实例所对应的服务的新实例。
当您在根级别提供服务时,Angular会创建一个共享的MyService实例,并将其注入到请求它的任何类中。
在@Injectable()元数据中注册提供者还允许Angular通过从编译的应用程序中删除不使用的服务来优化应用程序。
@Injectable({ providedIn: 'root' })
https://stackoverflow.com/questions/59168103
复制