redux中间件的使用

131 阅读1分钟

为什么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;