Redux中间件redux-thunk
在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相关推荐
- redux中间件原理-讲义
1.redux中间件简介 1.1.什么是redux中间件 redux 提供了类似后端 Express 的中间件概念,本质的目的是提供第三方插件的模式,自定义拦截 action -> reduce ...
- Redux中间件(redux-thunk、redux-promise、redux-saga)
文章目录 1.redux中间件简介 1.1.什么是redux中间件 1.2.使用redux中间件 2.中间件的运行机制 2.1.createStore源码分析 2.2.applyMiddleware源 ...
- [Redux/Mobx] redux的thunk作用是什么?
[Redux/Mobx] redux的thunk作用是什么? 作用:通过redux-thunk这个中间件,改变了redux中原本dispatch函数的作用,使它可以接受一个function作为disp ...
- Redux中间件——Redux-thunk
什么是thunk? Redux-thunk是作为redux的middleware存在的,thunk是函数编程界的一个专有名词,主要用于calculation delay,也就是延迟计算. functi ...
- redux中间件+react高阶组件
1.redux中间件 中间件提供第三方插件的模式,自定义拦截 action -> reducer 的过程.变为 action -> middlewares -> reducer.这种 ...
- Koa2和Redux中间件源码研究
一.Koa2中间件源码分析 在Koa2中,中间件被存放在一个数组中. 使用koa中,最常见的就是app.use(fn),use函数部分源码如下所示.首先中间件必须是个函数.若是generator函数, ...
- [Redux/Mobx] Redux怎么添加新的中间件?
[Redux/Mobx] Redux怎么添加新的中间件? applyMiddleware 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目录 与歌 ...
- redux引用多个中间件_如何轻松创建您的第一个Redux中间件
redux引用多个中间件 by Gabriele Cimato 加布里埃莱·西马托(Gabriele Cimato) 如何轻松创建您的第一个Redux中间件 (How to create your f ...
- 【Redux】redux的使用详解
Redux的使用详解 Redux的核心思想 理解纯函数 1. 为什么要使用redux JavaScript开发的应用程序,已经变得越来越复杂了: JavaScript需要 管理的状态越来越多,越来越复 ...
- Redux相关知识(什么是redux、redux的工作原理、redux的核心概念、redux的基本使用)(十一)
系列文章目录 第一章:React基础知识(React基本使用.JSX语法.React模块化与组件化)(一) 第二章:React基础知识(组件实例三大核心属性state.props.refs)(二) 第 ...
最新文章
- 一人之力,刷爆三路榜单!信息抽取竞赛夺冠经验分享
- 自学web前端的方法都有哪些?新手怎么学HTML5
- 为 Neutron 准备物理基础设施(II) - 每天5分钟玩转 OpenStack(76)
- SwiftUI之深入解析布局如何自定义AlignmentGuides
- 探索cqrs和事件源_编写基于事件的CQRS读取模型
- linux龙芯自动挂载u盘,Windows Subsystem for Linux (WSL)挂载移动硬盘U盘
- sklearn的train_test_split
- c语言调用子程序,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
- HDU 5980 2016ICPC大连 J: Find Small A
- 搭建SpringMVC
- 分布式系统常用思想和技术
- 吴恩达机器学习详细总结(三)
- 自动与时间服务器时间同步,Windows系统时间同步(附时间同步服务器地址)
- SREng扫描报告分析
- MyEclipse10破解教程
- WebGL varying变量和颜色插值
- 欧拉筛法筛素数(接近O(n),取模操作稍微慢一点) 4E7之内的素数 Apare_xzc
- 苹果输入法微信换行及微信群接龙
- 二维码防伪系统开发-实现了产品信息防伪的高效性
- iar for arm 第一课
热门文章
- 38 字典名[键名]=值 向字典增加键值对
- excel报内存或磁盘空间不足
- audio与video标签支持的文件格式
- Ubuntu Linux 携手诺基亚进军手机操作系统市场
- 关于matlab的讨论
- 电商支付数据在信贷风控中的应用
- 金山公司推出全新的金山毒霸体验版
- 2021-08-30——加班费的计算方式
- modern php_使用Modern.IE改善WordPress主题开发
- html accordion折叠菜单动态,jQuery EasyUI 布局插件 – Accordion 折叠面板 | 菜鸟教程...