Redux源码拾遗,关于createStore的第三个参数
来源:互联网 发布:2016淘宝网红店铺排名 编辑:程序博客网 时间:2024/06/11 13:39
简要介绍:再看redux文档的时候,发现了createStore是允许第三个参数的,看了一下源码明白了第三个参数的作用。
一、createStore的第三个参数的定义
(1)官方定义:createStore(reducer, [initialState], enhancer),
第三个参数enhancer, 是一个组合 store creator 的高阶函数,返回一个
新的强化过的 store creator。这与 middleware 相似,它也允许你通过
复合函数改变 store 接口。
(2)关于第三个参数的源码:
export default function createStore(reducer, preloadedState, enhancer) { if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { enhancer = preloadedState preloadedState = undefined } if (typeof enhancer !== 'undefined') { if (typeof enhancer !== 'function') { throw new Error('Expected the enhancer to be a function.') } return enhancer(createStore)(reducer, preloadedState) }
去掉前面一些类型判断,我们来看这一句:
return enhancer(createStore)(reducer, preloadedState)
这句的形式像什么,柯里化后传入的第一个参数为createStore,这很类
似于我们再定义中间件的时候,applyMiddleware这个函数,这个函数
返回了提升后的createStore。
二、applyMiddleware的两种写法
因此在applyMiddleware的时候,就会存在两种写法,这里我们以利用redux-thunk为例。
(1)直接调用applyMiddleware生成新的createStore
import thunk from 'redux-thunk'let createStoreWithMiddleware = applyMiddleware(thunk)(createStore)
(2)在createStore中调用
import thunk from 'redux-thunk'let createStoreWithMiddleware = createStore(reducer,preState,applyMiddleware(thunk))
阅读全文
0 0
- Redux源码拾遗,关于createStore的第三个参数
- redux的 combineReducers 和 createStore 的实现原理
- Redux 中 combineReducers 和 createStore的实现原理
- 关于itoa的第三个参数
- main的第三个参数
- addEventListener的第三个参数
- addEventListener的第三个参数
- addEventListener的第三个参数
- createAlias的第三个参数
- addEventListener的第三个参数
- addEventListener的第三个参数
- 关于redux的认识
- 关于 SQL中CONVERT函数的第三个参数的问题
- 关于linux socket通讯的accept函数的第三个参数剖析
- 关于redux的入门简介
- 关于LayoutInflater.inflater(int resId,ViewGroup root,boolean attchtoroot)第三个参数的问题
- string::find的第三个参数
- addEventListener方法的第三个参数
- 个人博客主页搭建随笔
- Java中的正则语法小结
- 相机的选购
- (二十一)Android内存、性能优化
- Idea集成SVN,checkout公司项目
- Redux源码拾遗,关于createStore的第三个参数
- Dependency Walker使用说明(对比软件运行与跟踪情况)
- solr的基本使用
- 海康萤石摄像机远程监控机制分析
- c++11多线程以及上锁的简单例子
- HDU 3065 病毒侵袭持续中(AC自动机)
- QUAKE 3源代码评测:架构
- 数组去重的方法
- (二十二) IPC机制通讯