Redux是基于React的一个统一状态管理库。可以更容易实现组件间的状态共享问题,同时可以通过React DevTools工具记录并调试。
npm i redux @reduxjs/toolkit;
src
文件夹创建名为store
文件夹,并在里边新增一个index
模块。index
模块中定义store实例,并默认导出react-redux
中引入Provider
组件,通过该组件将store注入进去combineReducers
函数合并成一个大的reducer函数。每一个reducer函数接收两个参数
现在React已经进入Hook时代,因此 可以通过
useSelector hook
来从整个状态对象选出您所需的状态。
let selected = useSelector(selector)
Redux中修改状态的唯一方式:dipatch一个action对象。reducer函数在执行时根据不同的action.type完成状态修改 并 返回新状态。
通过 react-redux库中的useDispath hook
来获取 到 dispath 函数。在调用时传入一个action对象即可完成状态修改.
const dispatch = useDispatch()
dispatch({type: '', payload: 10})
在 RTK 包中引入createSlice
函数来创建一个slice对象。
const slice = createSlice(options)
其中options对象包含以下常用属性
name:给action对象的type属性指定命名空间
initialState:指定状态的初始值
reducers:在该对象中定义各种修改状态的reducer函数