redux-中间件-理解
中间件:middleware。用来在不损害原功能的前提下,引入额外的代码来拓展功能。
Redux 中间件
图示
没有中间件:
?使用中间件:
小结
-
中间件是对原有功能的拓展 -
redux中间件的执行时机在dispatch之后,执行reducer逻辑之前
redux-中间件-redux-thunk
作用
redux-thunk 中间件允许redux处理函数形式的 action 。在函数形式的 action 中就可以执行异步操作代码,完成异步操作。
之前
const action1 = {type: 'todos/add', payload: '学习redux'}
dispatch(action1)
?之后
const action1 = async (dispatch) =>{
const res = await 异步动作()
dispatch({type: 'todos/add', payload: '学习redux'})
}
dispatch(action1)
步骤
-
安装:npm i redux-thunk -
使用:在store/index.js
-
导入 redux-thunk , applyMiddleware(申请中间件)
import { createStore, applyMiddleware } from 'redux'
import thunk from 'redux-thunk'
? ? ? ? ? ? ? 2.调用applyMiddleware将 thunk 添加到中间件列表中
const store = createStore(rootReducer, applyMiddleware(thunk))
??????????????3.修改 action creator,返回一个函数,其形参就是redux的dispatch
const addTodo = (name)=> {
return async (dispatch) =>{
const res = await 异步动作()
dispatch({type: 'todos/add', payload: name})
}
}
dispatch(addTodo('学习redux'))
redux-devtools-extension的使用
redux-devtools-extension
方便在浏览器中调试redux操作的工具
先要安装 redux的开发者工具 ,再安装redux调试工具
官方文档 redux-devtools-extension?
步骤
-
安装react开发者工具(chrome浏览器插件) -
安装redux的开发者工具(chrome浏览器插件) -
在项目中安装redux调试工具,它是一个npm包。 npm i redux-devtools-extension -D -
配置。在store/index.js中进行配置和导入 import { createStore, applyMiddleware } from 'redux'
import { composeWithDevTools } from 'redux-devtools-extension'
const store = createStore(reducer, composeWithDevTools(applyMiddleware(中间件..)))
export default store
效果
?
?
|