- configureStore 是redux toolkit的核心,
自动设置redux devtools扩展,Thunk中间件,immer库
- const store = configureStore({
reducer: {
bill: billReducer
}
});
configureStore 函数接收一个配置对象作为参数,其中 reducer 属性是一个对象,它的键是 state 的一部分,值是对应的 reducer 函数。在这个例子中,bill 是 state 的一个属性,它的值由 billReducer 函数来管理。
- 基于promise,使用async/await 语法,在网络请求成功后,
使用dispatch触发同步reducer action(setBillList就是action方法),更新reducer state状态
// 编写异步
const getBillList = () => {
return async (dispatch) => {
// 编写异步请求
const res = await axios.get('http://localhost:8888/ka')
// 触发同步reducer,传递给action
dispatch(setBillList(res.data))
}
}
- 组件特性,性能:useDispatch 钩子会返回一个稳定的 dispatch 函数引用,
可以在组件中使用它来分发 action。
const dispatch = useDispatch()
dispatch(getBillList())
上下问依赖:useDispatch自动从redux store中获取dispatch方法,
在组件树中传递,避免了手动传递dispatch的麻烦。