问题:1.redux-thunk要解决什么问题?

    要解决异步请求问题,Action发出以后,Reducer立即算出State,这叫做同步;Action发出以后,过一段时间再执行

  Reducer,这就叫做异步。

  2.怎么解决异步?

    ①把Ajax放在Reducer中,Reducer是纯函数,不能进行读写操作

    ②放在Action中,$.get(URL,function(data){

              return data;

              //回调函数返回的是里面这一层的,无法把数据返回出去

            })

redux-thunk的含义:

  ①帮助我们让所有的组件的props存在了dispatch方法,注意这个组件一定要被connect处理后才生效

  ②改造store.dispatch,使得它可以接受函数为参数(正常情况下只能是对象,不是函数) 

  ③同步:Action Creator返回一个Action

   异步:异步的Action Creator不是直接返回Action,而是返回一个携带dispath的函数

  ④点击按钮发出的函数相当于延长了dispatch持续时间,就是说我要dispatch出一个action,但是我不立即发出,因为参数需要

   Ajax获得,此时返回一个携带dispatch的函数,相当于延长了dispatch

  ⑤现在connect中一般不谢第二个参数了,就是说省略掉MapDispatchToProps

redux-thunk的理解的更多相关文章

  1. Redux 和 Redux thunk 理解

    1: state 就像 model { todos: [{ text: 'Eat food', completed: true }, { text: 'Exercise', completed: fa ...

  2. Redux thunk中间件

    redux-thunk https://github.com/reduxjs/redux-thunk Why Do I Need This? Thunks are the recommended mi ...

  3. redux middleware 的理解

    前言 这几天看了redux middleware的运用与实现原理,写了一个百度搜索的demo,实现了类似redux-thunk和redux-logger中间件的功能. 项目地址:https://git ...

  4. 手写一个Redux,深入理解其原理

    Redux可是一个大名鼎鼎的库,很多地方都在用,我也用了几年了,今天这篇文章就是自己来实现一个Redux,以便于深入理解他的原理.我们还是老套路,从基本的用法入手,然后自己实现一个Redux来替代源码 ...

  5. 对redux的粗略理解

    redux是一个js库,用于前端应用的状态管理,但是在一个较小的项目中,即一个并不需要太多交互的项目中完全可以不用redux,非要使用的话反而增加了项目的复杂度. 关于redux就是状态与数据一一对应 ...

  6. Redux 洋葱模型理解

    下面的代码会输出: A middleware1 开始C middleware2 开始E middleware3 开始======= G =======F middleware3 结束D middlew ...

  7. redux中间件的理解

    redux的中间件就是用来处理reducer和actions之间应用,常用的中间件有redux-thunk,redux-sage.在redux中通过applyMiddleware方法使用中间件 使用例 ...

  8. Redux学习之我对于其工作流程的理解和实践

      目录 1 工作流程图 2 各部位职责 3 Demo   1 工作流程图   2 各部位职责 我在理解这个流程图的时候,采用的是一种容易记住的办法,并且贴切实际工作职责. 我们可以把整个Redux工 ...

  9. fish redux 个人理解

    fish redux 理解 fish redux是什么 Fish Redux 是一个基于 Redux 数据管理的组装式 flutter 应用框架, 它特别适用于构建中大型的复杂应用. 它的特点是配置式 ...

  10. Redux状态管理方法与实例

    状态管理是目前构建单页应用中不可或缺的一环,也是值得花时间学习的知识点.React官方推荐我们使用Redux来管理我们的React应用,同时也提供了Redux的文档来供我们学习,中文版地址为http: ...

随机推荐

  1. jquery面试(2)

    DOM操作——怎样添加.移除.移动.复制.创建和查找节点? (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个具体 ...

  2. oracle 字符转换成数字

    1>函数转换 select nvl2(translate(a.data, '\1234567890.', '\'), null, a.data) n, a.data from rpt_detai ...

  3. oracle 11g R2(静默安装)

    参考博客地址:https://blog.csdn.net/jameshadoop/article/details/48223645 https://www.abcdocker.com/abcdocke ...

  4. 多线程之批量插入小demo

    多线程之批量插入 背景 昨天在测试mysql的两种批量更新时,由于需要入库大量测试数据,反复执行插入脚本,过程繁琐,档次很低,测试完后我就想着写个批量插入的小demo,然后又想写个多线程的批量插入的d ...

  5. python全栈开发 * 进程理论 进程创建 * 180724

    一.进程理论 1.进程是资源分配的最小单位. 2.进程调度就是多个进程在操作系统的控制下被CPU执行,去享用计算机的资源. 先来先服务 短作业优先 时间片轮转 多级反馈队列 3.进程调度的过程是不能够 ...

  6. JS常用各种正则表达式(汇总)

    匹配URL 这个url的正则表达式判断的JavaScript!比较全面的.它验证的情况包括IP,域名(domain),ftp,二级域名,域名中的文件,域名加上端口!用户名等等信息, function ...

  7. Codeforces 1136E - Nastya Hasn't Written a Legend - [线段树+二分]

    题目链接:https://codeforces.com/problemset/problem/1136/E 题意: 给出一个 $a[1 \sim n]$,以及一个 $k[1 \sim (n-1)]$, ...

  8. [No000018A]改善C#程序的建议11-20

    建议11:区别对待 == 和Equals CLR中将“相等性”分为两类:1.值相等性:两个变量包含的数值相等.2.引用相等性:两个变量引用的是内存中的同一个对象. 但并不是所有的类型的比较都是按照其本 ...

  9. python摸爬滚打之day022----模块(序列化操作)

    1.pickle 可以将我们python中的任意数据类型转化成bytes并写入到文件中.  同样也可以把文件中写好的bytes转换回我们python的数据. pickle可以直接序列化对象. clas ...

  10. sap 软件架构

    1: