依赖注入

本节将阐述如何在Service之间进行依赖注入

Scope

在将Service连接到React组件的时候,我们可以设置当前Service的注入Scope,预设有:Singleton(单例,全局唯一实例)和Transient(新实例,当前全新的实例),你也可以使用自定义的Scope,相同名称的Scope之间实例是一样的,否则是不同实例。

这里有一个自定义Scope的例子: https://codesandbox.io/s/service-x-scope-8oool

Service 注入 Service

我们可以很方便的在一个Service里面注入另外一个Service以获得或修改另外一个Service中的数据。基本注入方式可以参考下面这个例子:https://codesandbox.io/s/service-xinject-bvg63

实际上,这个功能一般用于便捷获取公共组件中的Service

Transient or Singleton ?

哪种注入方式好呢?这里没有一个绝对的标准:

如果选择了Transient,好处是比较纯粹,可以同时应用在不同组件中,复用逻辑。坏处是需要自己维护和传递当前的service实例。

Singleton相对来说较为简单点,不过需要注意:实例不能在不同组件中使用,同时也要注意及时清理State(推荐使用resetOnUnmount参数)

Last updated