redux源码中只有同步操作,当我们dispatch action时,state会立即被更新。
如果想在redux中引入异步数据流,可以使用中间件来增强createStore,支持异步数据流的中间件,最简单的应该就是redux-thunk。
redux-thunk
是一个 redux 的中间件,解决异步Action。主要功能 dispatch 一个函数,而不是 object。会带来很大的灵活性。
function createThunkMiddleware(extraArgument) {
return ({ dispatch, getState }) =>
(next) =>
(action) => {
if (typeof action === 'function') {
return action(dispatch, getState, extraArgument);
}
return next(action);
};
}
const thunk = createThunkMiddleware();
thunk.withExtraArgument = createThunkMiddleware;
export default thunk;
源码只有几行。
网友评论