在react中管理数据状态,必然会用到redux,那么redux是怎么样做到这个状态的转换的,下面我们一起来学习一下吧。
Redux API 和 Redux 源码结构
Redux API
|
|
源码结构
Redux源码结构和提供的API大体对应,如下:
utils——warning.js //console中打印warning信息要用到的
applyMiddleware.js
bindActionCreators.js
combineReducers.js
compose.js
createStore.js
index.js //export 上述定义的module
createStore
上面我们看到了redux的API和源码结构,看的出来,warning.js和index.js不用解析,都看得懂,关键时其余的几个module,那我们从最重要的createStore讲起。
现在来看下createStore的大体结构
现在是不是感觉明朗(懵逼)了许多,懵逼就对了,接下来我们再来解析一下dispatch, subscribe等函数的具体实现,或许会让你明朗(更懵逼)起来
看了上面的大体结构,我们明白以下这些就够了。
createStore是一个函数,它定义了一些变量(currentState, currentListeners等)及函数(dispatch, subscribe等),并且调用了dispatch,最后返回一个对象,该对象包含的就是dispatch和subscribe等函数。接下来我们来解析这些函数。
createStore里面只调用了一个函数,那就是dispatch,那我们就从这里开始讲起。
dispatch
它是这样被调用的,有没有很熟悉。。。
来看看dispatch的源码