redux源码拆解
文章目录
redux源码拆解分析
对于初学者比较纠结的有2点
- 函数式API
- flux数据流的多个概念
redux的数据流思想
- action ==> 改变store的行为
- dispatch ===> 分发数据到reducers
- reducer ===> 指明应用如何更新数据至Store
redux主要暴露给外界的函数式API
1 | { |
函数式API的处理
redux中使用了很多函数式的API,这类API的一个特点就是使用闭包将逻辑封闭在黑盒子里面。
redux暴露的四个API是setter和getter的变体
下面针对redux的源码配置进行函数式API的说明
1 |
|
1、上述代码不像类似react或者angular/vue之类的前端UI框架更多的关注UI逻辑,API也比较易懂
2、redux的函数式API体现着数据的流向,利用层层闭包将所有的信息最后集成在return的结果里面
3、每个函数都是一个工厂,提供着数据整合的功能
4、redux提供的subscribe API,便利了redux和各类框架结合起来使用。这类库例如react-redux,ng-redux等等
1 例如:react-redux的connect提供了trySubscribe函数注册redux,从而能代理起react的state。可以阅读react-redux源码查看实现5、redux提供applyMiddleWare为中间件的接口,社区也有诸多redux配合其他框架的中间件,以redux-thunk(形式替换程序)为例
1 | redux-thunk将action的执行条件,增加到不仅仅是plainObject的范围,并兼容promise。 |