繁体   English   中英

(Angular)为什么需要同一服务的多个实例?

[英](Angular) Why would you want multiple instances of the same service?

我可能遗漏了一些东西,每当我用谷歌搜索时,人们通常会问“如何”而不是“为什么”

但是,实际上创建同一服务的多个实例,其中每个实例具有相同的功能、相同的变量有什么意义呢?

持有state。

想象一下,您有一个应用程序,它有多个选项卡。 假设它们显示汽车信息,因此每个选项卡都有不同的汽车。 您在“根选项卡”组件中提供服务,因此该服务的实例将可用于该选项卡内的所有子组件/服务,而不是外部。 这样你就可以编写存储一辆车数据的服务,从而降低服务的复杂性。

@Injectable()
export class CarService {
  color = '';
}
@Component({
  ...
  providers: [CarService]
})
export class TabComponent {
  constructor(private car: CarService) {}
  getColor() { return this.car.color }
}

这样你就可以拥有

TabComponent
  getColor() -> red
TabComponent
  getColor() -> blue
TabComponent
  getColor() -> black

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM