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源码分析的主要内容,如果未能解决你的问题,请参考以下文章

手写Redux-Saga源码

Android 插件化VirtualApp 源码分析 ( 目前的 API 现状 | 安装应用源码分析 | 安装按钮执行的操作 | 返回到 HomeActivity 执行的操作 )(代码片段

Android 逆向整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmOptimizeDexFile() 方法分析 | /bin/dexopt 源码分析 )(代码片段

Android 事件分发事件分发源码分析 ( Activity 中各层级的事件传递 | Activity -> PhoneWindow -> DecorView -> ViewGroup )(代码片段

《Docker 源码分析》全球首发啦!

mysql jdbc源码分析片段 和 Tomcat's JDBC Pool