使用mobx过程中,如果store我是这么写的:
import fetch from './fetch.js'
import load from './load.js'
const stores = {fetch ,load }
export default stores
在实际的组件中,将需要用到的store 可以使用@inject 直接注入组件,然后直接在this.props.xxx 这么获取就行了。这好像是比较标准的做法。
那如果不用的@inject的话,也有看到过别人写的代码,不会将多个小store 放到store 文件中,而是在需要用到store的组件中直接:
import load from './load.js'
// 不在load.js 中new 了
const loadStore = new Load()
...
<li>{loadStore.xxx.a}</li>
...
或者也有人说可以将所有的store都在根组件中通过props传递下来,太深就用context。
不过这三种方式确实是使用@inject 直接按需注入方便很多,数据更加明确吧。但是我想问一下这三种形式,除了方便之外还有什么区别?