欢迎光临散文网 会员登陆 & 注册

Redux原码解析

2023-03-04 21:00 作者:TongMarsh  | 我要投稿

redux导出的api:包括createStore,combineReducers,以及store的dispatch,getState,subscribe等。

createStore

createStore函数接受reducer,preloadedState,enhancer三个参数,preloadedState和enhancer是可选参数。返回store对象,store对象具有dispatch,getState,subscribe等方法。这里运用了闭包,因此通过导出的store对象方法访问状态。

combineReducer

combineReducer接受一个由多个reducer组成的对象,然后返回一个reducer函数,这个reducer函数的签名和普通reducer一样,而在内部则是依次调用reducerMapObject里所有reducer更新状态。


bindActionCreator

此方法在react-redux的mapDispatchToProps里运用较多。作用是将actionCreator函数转化成dispatch形式

applyMiddleware

applyMiddleware接受中间件,返回storeenhancer。是一个高阶函数,这里有点绕,但是作用是将middleware和基础的dispatch compose起来,作为store的dispatch函数。

middleware举例- redux-thunk源码

当使用了redux-thunk中间后,增强的dispatch接受actionCreator后优先走action==function的分支,因此也就是调用actionCreator函数并且传入dispatch,getState等参数,当actionCreator的异步操作结束后调用dispatch,这次传参是对象,就走next分支,也就是基本的dispatch功能。



Redux原码解析的评论 (共 条)

分享到微博请遵守国家法律