在redux中,action仅仅是携带了数据的普通js对象,actionCreator返回值是这个action类型的对象.

然后通过store.dispatch()进行分发,同步的情况下一切就都很完美,但是reducer无法处理异步的情况

这时候  我们就需要中间件middleware 来解决

//这里先介绍一个redux-thunk

我们现在有这样的一个需求

cinema和search  都需要请求后台的数据  这个数据还一样

`重复请求 不太好

我们优化一下  谁先取到  就先存起来   之后 就不用再发送请求

我们定好reducer

再定义actionCreator

actionCreator在这里是按照配定好中间件的情况下写的

这是个异步的请求  请求的结果 最终会是一个dispatch的对象

(这里面的dispatch参数可以更改成别的名字,这样写只是为了清除 中间件到底塞到这个异步的actionCreator  中  什么东西)

我们在cinema组件页面中导入actionCreator

然后 在组件被创建的时候  判断一下   是不是要请求数据

(如果redux的store中 这个list 没有数据   我们就将上面actionCreator的返回对象值  dispatch出去  进行 list的缓存)

之后我们在redux的store.js中配置中间件

先导入  安装好的redux-thunk的包

使用applyMiddleware()挂载中间件

这样就完成了   如果没有这个store.js文件中的这两个配置  上面在actionCreator和cinema组件中的配置 就执行不了  而且会报错

以上就是redux-thunk中间件的完整使用

如果我们想在 cinema组件中 使用我们的redux的store中的数据  (在函数式组件中)

使用useState

并在useEffect中订阅 并 设置状态

记着在cinema组件销毁的  取消订阅  以避免重复订阅  都是在useEffect中完成

直接jsx使用就行

Redux中间件redux-thunk相关推荐

  1. redux中间件原理-讲义

    1.redux中间件简介 1.1.什么是redux中间件 redux 提供了类似后端 Express 的中间件概念,本质的目的是提供第三方插件的模式,自定义拦截 action -> reduce ...

  2. Redux中间件(redux-thunk、redux-promise、redux-saga)

    文章目录 1.redux中间件简介 1.1.什么是redux中间件 1.2.使用redux中间件 2.中间件的运行机制 2.1.createStore源码分析 2.2.applyMiddleware源 ...

  3. [Redux/Mobx] redux的thunk作用是什么?

    [Redux/Mobx] redux的thunk作用是什么? 作用:通过redux-thunk这个中间件,改变了redux中原本dispatch函数的作用,使它可以接受一个function作为disp ...

  4. Redux中间件——Redux-thunk

    什么是thunk? Redux-thunk是作为redux的middleware存在的,thunk是函数编程界的一个专有名词,主要用于calculation delay,也就是延迟计算. functi ...

  5. redux中间件+react高阶组件

    1.redux中间件 中间件提供第三方插件的模式,自定义拦截 action -> reducer 的过程.变为 action -> middlewares -> reducer.这种 ...

  6. Koa2和Redux中间件源码研究

    一.Koa2中间件源码分析 在Koa2中,中间件被存放在一个数组中. 使用koa中,最常见的就是app.use(fn),use函数部分源码如下所示.首先中间件必须是个函数.若是generator函数, ...

  7. [Redux/Mobx] Redux怎么添加新的中间件?

    [Redux/Mobx] Redux怎么添加新的中间件? applyMiddleware 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌 ...

  8. redux引用多个中间件_如何轻松创建您的第一个Redux中间件

    redux引用多个中间件 by Gabriele Cimato 加布里埃莱·西马托(Gabriele Cimato) 如何轻松创建您的第一个Redux中间件 (How to create your f ...

  9. 【Redux】redux的使用详解

    Redux的使用详解 Redux的核心思想 理解纯函数 1. 为什么要使用redux JavaScript开发的应用程序,已经变得越来越复杂了: JavaScript需要 管理的状态越来越多,越来越复 ...

  10. Redux相关知识(什么是redux、redux的工作原理、redux的核心概念、redux的基本使用)(十一)

    系列文章目录 第一章:React基础知识(React基本使用.JSX语法.React模块化与组件化)(一) 第二章:React基础知识(组件实例三大核心属性state.props.refs)(二) 第 ...

最新文章

  1. 一人之力,刷爆三路榜单!信息抽取竞赛夺冠经验分享
  2. 自学web前端的方法都有哪些?新手怎么学HTML5
  3. 为 Neutron 准备物理基础设施(II) - 每天5分钟玩转 OpenStack(76)
  4. SwiftUI之深入解析布局如何自定义AlignmentGuides
  5. 探索cqrs和事件源_编写基于事件的CQRS读取模型
  6. linux龙芯自动挂载u盘,Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
  7. sklearn的train_test_split
  8. c语言调用子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  9. HDU 5980 2016ICPC大连 J: Find Small A
  10. 搭建SpringMVC
  11. 分布式系统常用思想和技术
  12. 吴恩达机器学习详细总结(三)
  13. 自动与时间服务器时间同步,Windows系统时间同步(附时间同步服务器地址)
  14. SREng扫描报告分析
  15. MyEclipse10破解教程
  16. WebGL varying变量和颜色插值
  17. 欧拉筛法筛素数(接近O(n),取模操作稍微慢一点) 4E7之内的素数 Apare_xzc
  18. 苹果输入法微信换行及微信群接龙
  19. 二维码防伪系统开发-实现了产品信息防伪的高效性
  20. iar for arm 第一课

热门文章

  1. 38 字典名[键名]=值 向字典增加键值对
  2. excel报内存或磁盘空间不足
  3. audio与video标签支持的文件格式
  4. Ubuntu Linux 携手诺基亚进军手机操作系统市场
  5. 关于matlab的讨论
  6. 电商支付数据在信贷风控中的应用
  7. 金山公司推出全新的金山毒霸体验版
  8. 2021-08-30——加班费的计算方式
  9. modern php_使用Modern.IE改善WordPress主题开发
  10. html accordion折叠菜单动态,jQuery EasyUI 布局插件 – Accordion 折叠面板 | 菜鸟教程...