简介

  • redux-thunkredux官方退出的一个异步中间件,thunk表示延迟计算的意思
  • 使用中间件之后,我们可以再action构造器中返回一个函数,而不是一个对象

使用

下载

npm install redux-thunk -S

配置

  • 这里我们需要使用到redux的一个使用中间件的函数applyMiddleware
import {createStore,applyMiddleware} from 'redux'
import thunk from 'redux-thunk'import reducer from './reducer'const store = createStore(reducer,applyMiddleware(thunk)
)export default store

这样配置之后,我们就可以再action creator中返回一个函数,并且返回的函数中的参数为dispatch

组件中的使用

首先我们写一个action creator

// 普通的action creator
export const subAction = (num) => {return { type: SUB_COUNT, num: num };
};// 异步的action creator 返回一个函数
export const asyncGetData = (num) => {return dispatch => {// 在这里进行异步setTimeout(() => {dispatch(addAction(num))},2000)}
}
  1. 这里,我们可以与普通的action creator来进行对比,我们会发现普通的action creator是返回了一个对象,而异步的action creator是返回了一个函数
  2. 在组件中,我们应该这样使用
class Home extends React.PureComponent{...render(){const {getAsyncData} = this.propsreturn (<div>...<button onClick={getAsyncData}>异步递增</button></div>)}
}const mapDispatchToProps = (dispatch)=>{return{getAsyncData(){dispatch(asyncGetData(1))}}
}

点击按钮过一段时间之后,我们就会发现相应的数据也会进行改变

redux异步之redux-thunk相关推荐

  1. Redux 异步数据流-- thunk中间件源码解析

    Thunk 引入背景 这是一个关于Redux异步数据流的故事.引入thunk中间件的完整故事在Redux官方中文文档异步数据流.一句话总结就是:原生Redux只支持同步数据流,所以需要引入中间件(mi ...

  2. 精益 React 学习指南 (Lean React)- 3.4 掌控 redux 异步

    书籍完整目录 3.4 redux 异步 在大多数的前端业务场景中,需要和后端产生异步交互,在本节中,将详细讲解 redux 中的异步方案以及一些异步第三方组件,内容有: redux 异步流 redux ...

  3. Redux异步解决方案之Redux-Thunk原理及源码解析

    前段时间,我们写了一篇Redux源码分析的文章,也分析了跟React连接的库React-Redux的源码实现.但是在Redux的生态中还有一个很重要的部分没有涉及到,那就是Redux的异步解决方案.本 ...

  4. redux异步action_Redux数据状态管理

    Redux 中文文档(https://www.redux.org.cn/) Redux入门教程(快速上手)(https://segmentfault.com/a/1190000011474522?fr ...

  5. [Redux/Mobx] 在Redux中怎么发起网络请求?

    [Redux/Mobx] 在Redux中怎么发起网络请求? 如果单纯的使用Redux,因为redux的actionCreator返回一个plain object,所以不能在actionCreator中 ...

  6. Redux概念之一: Redux简介

    Redux的官网中用一句话来说明Redux是什么: Redux是针对JavaScript应用的可预测状态容器 这句话虽然简短,其实是有几个涵义的: 可预测的(predictable): 因为Redux ...

  7. [Redux/Mobx] 说说Redux的实现流程

    [Redux/Mobx] 说说Redux的实现流程 通过分析redux的几个核心api,来看如何实现redux store.subscribe: 订阅数据的变化 store.dispatch:disp ...

  8. [Redux/Mobx] 在redux中,什么是action?

    [Redux/Mobx] 在redux中,什么是action? action是Redux中定义一个响应的动作,action总是有一个type属性,作为这个动作的唯一标识; Reducer函数则会根据这 ...

  9. [Redux/Mobx] 为什么redux能做到局部渲染呢?

    [Redux/Mobx] 为什么redux能做到局部渲染呢? reducer从根往最子级的reducer中间各层总是返回一个新的state,这样的话,就会引起组件的大范围的re-render,但是这是 ...

最新文章

  1. 开发日记-20190621 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  2. HTML课堂笔记02-21
  3. 8,协议序列化组件NewLife.Serialization
  4. Natasha 4.0 探索之路系列(三) 基本的动态编译
  5. mysql五大子句_MySQL的查询语句中可以使用以下哪个子句来表示分组查询
  6. android个人中心界面_在android搭建个人的文件中心(1)--一个想法
  7. css 查看更多_Cirrus(原型制作CSS框架)下载-Cirrus(原型制作CSS框架)v0.6.0免费版下载...
  8. gridview控件添加属性
  9. 纯js制作的XML在线编辑器(支持修改本地文件)
  10. 雄迈摄像头研究笔记二:系统的研究
  11. C语言-1-初识C语言(三)
  12. android 简书饿了么,对接饿了么平台总结
  13. 昔日无痕,沧桑有迹-魔幻般的2020
  14. 学习python记录2
  15. SpringBoot文件上传遇到的问题及解决方案
  16. 【yolov3】如何使用摄像头进行目标检测——yolov3-pytorch摄像头检测教程
  17. java执行sql文件
  18. adf机器_美能达163维修模式中文说明
  19. TikTok云控功能说明
  20. 什么是5G?关注MWC 2019前你需要了解这些知识

热门文章

  1. 关闭钩子(shutdown hool)
  2. SAR回波的多普勒特性
  3. 交通灯数据集收集及比较
  4. 情感化设计——程序员的必修之课
  5. 诺基亚将推出概念UMPC
  6. 云服务器创建FTP站点
  7. 潜艇大战c语言实验报告,c语言编的潜艇大战1
  8. Vista下输入法的使用
  9. 审美--《艺术与审美》课程学习笔记
  10. latex的三线表格及一些错误的修改