上一章Redux教程请查看:redux核心概念和数据流
存储是Redux中不可变的对象树,存储是保存应用程序状态的状态容器,Redux在应用程序中只能有一个存储,每当在Redux中创建存储时,你都需要指定reducer。
让我们看看如何使用来自Redux的createStore方法创建存储,需要从支持存储创建过程的Redux库中导入createStore包,如下所示:
import { createStore } from 'redux';
import reducer from './reducers/reducer'
const store = createStore(reducer);
createStore函数可以有三个参数,下面是语法:
createStore(reducer, [preloadedState], [enhancer])
一个reducer是一个函数,它返回应用程序的下一个状态,一个preloadedState是一个可选参数,它是应用程序的初始状态,一个enhancer也是一个可选参数。它将帮助你使用第三方功能来增强存储。
redux有三个重要的方法,如下所示:
getState
它帮助你检索Redux存储的当前状态。
getState的语法如下:
store.getState()
dispatch
它允许你调度一个操作来更改应用程序中的状态。
调度的语法如下
store.dispatch({type:'ITEMS_REQUEST'})
subscribe
它帮助你注册一个回调,当一个动作被分派时,Redux store将调用这个回调,一旦更新了Redux状态,视图将自动重新呈现。
分派的语法如下
store.subscribe(()=>{ console.log(store.getState());})
注意,subscribe函数返回一个取消订阅侦听器的函数。要取消订阅监听器,可以使用下面的代码:
const unsubscribe = store.subscribe(()=>{console.log(store.getState());});
unsubscribe();