组内技术生态是React,参与使用React构建的大型项目也有几个了,趁着最近需求比较不饱和,来梳理一下常和React配套使用的数据流框架Redux的使用方法和内部原理。
阅读本文可以了解
- redux简单源码梳理
源码梳理
看一眼github中的源码文件
1、index
没什么好说的,就是将方法导出
2、createStore
这个方法比较重要,用于一开始创建应用唯一Store。来看看关键代码。
3、store.dispatch
|
|
4、store.subscribe
订阅监听函数
5、store.getState
非常简单,没什么好说的
6、combineReducers
combineReducers()做的就是产生一个整体的 Reducer 函数。该函数根据 State 的 key 去执行相应的子 Reducer,并将返回结果合并成一个大的 State 对象。
// 单个actionCreator包裹
function bindActionCreator(actionCreator, dispatch) {
return function() {
return dispatch(actionCreator.apply(this, arguments))
}
}
// 多个
// 其实就是循环执行bindActionCreator
export default function bindActionCreators(actionCreators, dispatch) {
const keys = Object.keys(actionCreators)
const boundActionCreators = {}
for (let i = 0; i < keys.length; i++) {
const key = keys[i]
const actionCreator = actionCreators[key]
if (typeof actionCreator === ‘function’) {
boundActionCreators[key] = bindActionCreator(actionCreator, dispatch)
}
}
return boundActionCreators
}
```
未完待续。。感谢阅读