redux-thunk源码分析
Posted yaooo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了redux-thunk源码分析相关的知识,希望对你有一定的参考价值。
1 "use strict"; 2 3 function createThunkMiddleware(extraArgument) { 4 return function (_ref) { 5 var dispatch = _ref.dispatch, 6 getState = _ref.getState; 7 return function (next) { 8 return function (action) { 9 if (typeof action === "function") { 10 return action(dispatch, getState, extraArgument); 11 } 12 return next(); 13 }; 14 }; 15 }; 16 } // 将箭头函数转换为普通的函数 参考:https://www.jianshu.com/p/a3b9b0958aeb
调用createThunkMiddleware
就必须执行并且再传入_ref 。
这在redux中有相应步骤 将 middlewareAPI 传入
const middlewareAPI = { getState: store.getState, dispatch: (...args) => dispatch(...args) } const chain = middlewares.map(middleware => middleware(middlewareAPI))
再得到一个方法,需要传入next
这在redux中也有做相应步骤,
dispatch = compose(...chain)(store.dispatch)
再得到一个方法需要传入一个action
此方法未执行, 只有在dispatch的时候才会执行。
这就是中间件的作用,包装后的dispatch. 可以接受一个函数。
以上是关于redux-thunk源码分析的主要内容,如果未能解决你的问题,请参考以下文章
Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段
Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段
Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段