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)(二) 第 ...
最新文章
- [TEAP] HTML5简史
- pythondes加密盒子_PYTHON实现DES加密及base64源码
- 利用union判断系统的大小端
- php 监听端口数据客户端ip_PHP做端口监听示例代码
- mysql 5.7 安装后添加root用户
- mysql不能删除外键吗,为什么mysql不允许删除外键?
- 微软自动化测试工具Playwright快速上手指南
- C/C++编程笔记:浪漫流星雨表白程序,七夕想表白,我教你啊!
- Excel的窗口如何冻结与拆分?
- 快速启动软件之 Rolan ,你真的会用?
- 手机影音最终,软件退出功能的优化
- 2014广东计算机一级试题及答案,广东计算机一级试题2014版
- iVX案例制作(1)—图片查看器
- android 广告库sdk,GitHub - adxdata/sdk-android-demo: 美数广告SDK(Android)示例
- 字体图标的引入方式(阿里巴巴字体库的使用)
- Java kafka监控 topic的数据量count情况,每个topic的Summed Recent Offsets(总结最近的偏移量)
- Node.js.不要堵塞线程(一)
- linux下编译安装ntfs,内核编译安装 (用NTFS模块)
- 二叉树的递归遍历和非递归遍历实现(C++)(深度优先)
- 维控协议转换网关WTGNet-LX
热门文章
- 【已解决】Html Webpack Plugin Error;html-withimg-loader无法正常解析html内的img
- abaqus软件模拟NiTi材料的人工肌肉
- GPU计算加速-cublas加速
- 《机械制造业智能工厂规划设计》——3.3 机械制造业智能工厂总体框架
- bilibili账号申诉中心_b站(bilibili)会员账号密码忘记了怎么办?申诉找回需要什么信息?...
- 天然气地下管道智慧应急指挥系统平台,24小时为你保驾护航
- 我的世界java我的世界启动侠_我的世界启动侠整合版下载
- 使用 Hexo 搭建自己的博客
- c语言字母倒金字塔编程,C语言倒金字塔编程.ppt
- Arduino SD库不能正常初始化SD卡的解决方法