为什么redux中需要引入中间件?
默认情况下,disptch只能派发一个普普通通的对象,如果需要派发一个promise或者异步函数,就需要中间件对disptch进行增强。(洋葱模型)
安装
npm install --save redux-thunk(redux-thunk处理异步)
npm i --save redux-logger(redux-promise打印执行方法前后的状态)
npm install --save redux-promise(redux-logger)
使用
引入
import { applyMiddleware, createStore,compose } from 'redux';
import reduxThunk from "redux-thunk"
import logger from 'redux-logger'
import promiseMiddleware from 'redux-promise';
创建仓库
- 使用单个中间:(egg:logger)
let createStoreWithMiddle = applyMiddleware(logger)(createStore)
let store = createStoreWithMiddle(reducer);
or
let store = applyMiddleware(logger)(createStore)(reducer);
- 使用多个中间件
let MiddleWareArr = [reduxThunk,logger,promiseMiddleware]
let createStoreWithMiddle = applyMiddleware(...MiddleWareArr)(createStore)
let store = createStoreWithMiddle(reducer);
or
let MiddleWareArr = [reduxThunk, logger, promiseMiddleware];
const store = createStore(reducer, compose(applyMiddleware(...MiddleWareArr)));
最后一步数:导出store
export default store;