ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# Store Store 就是保存数据的地方,可以把它看成一个容器。整个应用只能有一个 Store,易于管理。 ## 创建 Store Redux 提供 `createStore` 这个函数,用来生成 Store。 ```js import { createStore } from 'redux'; const store = createStore(fn); ``` 上面代码中,createStore 函数接受另一个函数作为参数,返回新生成的 Store 对象。 根据已有的 reducer 来创建 store 是非常容易的。我们使用 `combineReducers()` 将多个 reducer 合并成为一个。现在我们将其导入,并传递 createStore()。 ```js import { createStore } from 'redux' import todoApp from './reducers' let store = createStore(todoApp) ``` createStore() 的第二个参数是可选的, 用于设置 state 初始状态。这对开发同构应用时非常有用,服务器端 redux 应用的 state 结构可以与客户端保持一致, 那么客户端可以将从网络接收到的服务端 state 直接用于本地数据初始化。 ```js let store = createStore(todoApp, window.STATE_FROM_SERVER) ``` ## Store 的作用 Store 有以下职责: - 维持应用的 state; - 提供 `getState()` 方法获取 state; - 提供 `dispatch(action)` 方法更新 state; - 通过 `subscribe(listener)` 注册监听器; - 通过 `subscribe(listener)` 返回一个函数,执行此函数即注销监听器。 再次强调一下 Redux 应用只有一个单一的 store。当需要拆分数据处理逻辑时,应该使用 reducer 组合 而不是创建多个 store。