我使用redux已经有几个星期了,我以前也使用过通量,但是我想确保我使用redux的方式是正确的。到目前为止,我所有的研究都指向有一家专卖店。这很好,但是大多数解释和示例都讨论单个页面应用程序。当应用程序增长到超过1‘单页应用’时会发生什么?
例如,单个页面应用程序的集合,每个应用程序组织为一个模块文件夹,每个应用程序彼此之间没有任何关系。这种情况下,多个商店是一种选择吗?所以每个模块都有自己的存储器,减速机,等等.还是仍然被认为是在所有模块之间共享一个存储的redux方式?
顺便说一下,“单页应用程序”我不是字面意思是1页,而是一个模块,它可以由1-5个共享数据和其他特性的实际页面组成。
发布于 2016-09-01 12:58:15
有一家商店
这正是Redux的工作方式。你有一个单一的商店和许多行动。每个动作,当调度,更新商店通过减速机。
创建存储时,创建一个单一存储:
import { createStore } from 'redux';
import { render } from 'react-dom';
export default render(
<Provider store={createStore(...)}>
...
</Provider>
, document.getElementById('...'));createStore调用返回一个存储区,然后由Provider组件使用它将数据从存储区传递给连接的组件(也称为容器)。
单个页面应用程序的集合,每个应用程序组织成一个模块文件夹,每个应用程序彼此之间没有任何关系。
每个单独的部分都可以使用自己的部分商店。您可以使用combineReducers函数对它们进行划分:
import { createStore } from 'redux';
import { render } from 'react-dom';
import moduleA from './reducers/moduleA';
import moduleB from './reducers/moduleB';
import moduleC from './reducers/moduleC';
const store = createStore(combineReducers({
moduleA,
moduleB,
moduleC
});
export default render(
<Provider store={store}>
...
</Provider>
, document.getElementById('...'));并将存储作为对象,它具有与减速器相同的属性。每个减速机现在负责自己的部分状态,因此模块。任何一种减速器,如果操作正确,都不能使状态的一部分与这个减速器负责的部分不同。
你应该看看任何样板,有很多。例如,erikras/react redux-通用-热示例。
https://stackoverflow.com/questions/39272044
复制相似问题