能够或者需要创建多个store吗?
Flux模式描述了一个app中拥有多个store,每个store中存储着某个方面的数据。这将会引发一些问题,类似一个store中的数据需要等待另一个store更新完成。在redux中就不需要这样,因为已经通过把单个reducer拆分成多个更小的reducer来实现。
也存在一些情况,需要创建多个不同的redux store,但是理想模式是创建单个store。只拥有一个store,能使用redux devTools,使数据持久、更新更便捷,优化了订阅的逻辑。
使用多个store的场景包含如下:
- 解决在分析app时证实的因频繁更新某部分数据而导致的性能问题。
- 分离一个在更大的应用中作为组件的redux app,你希望每个组件拥有独立的store
但是,不要优先创建新的store,特别是你有flux背景,只有在reducer解决不了你的问题时,才使用多个store。
可以自己直接import store,用在组件上吗?
Redux不推荐
你直接import你的store实例。
如果你创建了一个store实例,把它从模块中导出,这会形成一个singleton。这会很难在大型应用中分离redux app 组件,或是服务端渲染,因为在每个请求中都需要产生一个store实例。
在react redux中,通过connect()函数包装的组件寻找对应的props.store。但是最好在根组件中用<Provider store={store}>
包装起来,这样组件就不需要导入store模块,之后分离redux app 或者服务端渲染变得更加简单。