[Redux/Mobx] 在Redux中怎么发起网络请求?
[Redux/Mobx] 在Redux中怎么发起网络请求?
如果单纯的使用Redux,因为redux的actionCreator返回一个plain object,所以不能在actionCreator中发起网络请求;reducer是一个纯函数,不能有副作用,所以也不能有异步的操作;如果需要在Redux中发起网络请求,就要借助中间件;如下:
- react-thunk: 这个中间件可以处理
dispatch
一个function
,即可以在actionCreator中返回一个函数签命是(dispatch, getState) => {}
的函数,在这个函数中可以进行异步操作,然后再异步操作后进行dispatch一个action - react-saga: reducer、actionCreator都保持原始的模式不改变(
dispatch
的依然是一个plain object),网络请求需要放在saga文件定义的generator函数中,使用take
或takeEvery
接受到view层传来的带有type
的对象,然后执行相应的generator函数,在generator函数中的异步任务执行完成之后,一般是通过put
方法(雷同于dispatch
)去更新Store中的数据
个人简介
我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论
主目录
[Redux/Mobx] 在Redux中怎么发起网络请求?相关推荐
- [Redux/Mobx] 在redux中,什么是action?
[Redux/Mobx] 在redux中,什么是action? action是Redux中定义一个响应的动作,action总是有一个type属性,作为这个动作的唯一标识; Reducer函数则会根据这 ...
- [Redux/Mobx] 在React中你是怎么对异步方案进行选型的?
[Redux/Mobx] 在React中你是怎么对异步方案进行选型的? 小项目使用简单的redux-thunk方案,增加的代码量极少,只有两个api,上手成本低 大项目使用基于redux-saga的d ...
- [Redux/Mobx] 在redux中,什么是store?
[Redux/Mobx] 在redux中,什么是store? 单一数据源,整个应用数据保存的地方 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目 ...
- [Redux/Mobx] 说说Redux的实现流程
[Redux/Mobx] 说说Redux的实现流程 通过分析redux的几个核心api,来看如何实现redux store.subscribe: 订阅数据的变化 store.dispatch:disp ...
- [Redux/Mobx] 为什么redux能做到局部渲染呢?
[Redux/Mobx] 为什么redux能做到局部渲染呢? reducer从根往最子级的reducer中间各层总是返回一个新的state,这样的话,就会引起组件的大范围的re-render,但是这是 ...
- [Redux/Mobx] 说说redux的优缺点分别是什么?
[Redux/Mobx] 说说redux的优缺点分别是什么? 优点 Redux轻量,生态丰富,可以结合流行的redux-thunk.redux-saga等进行使用 Redux的写法比较固定,团队应用中 ...
- [react] react中发起网络请求应该在哪个生命周期中进行?为什么?
[react] react中发起网络请求应该在哪个生命周期中进行?为什么? 异步情况可以在componentDidMount()函数中进行. 同步的情况可以在componentWillMount()中 ...
- dio网络框架封装_Flutter 使用dio来发起网络请求以及Cookie管理
前言 Flutter官方建议您使用 dio 来发起网络请求,在学习过程中,也尝试过用dart io中的HttpClient发起的请求,这里主要讲一下dio的使用以及CookieJar.CookieMa ...
- 鸿蒙开发-使用fetch发起网络请求
场景 鸿蒙基于JS搭建HelloWorld并修改国际化文件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/118274050 在 ...
最新文章
- 关于NameError: name ‘train_test_split‘ is not defined错误提示
- # 秒转换成分钟_10分钟时间,我用Excel完成了别人一天的数据分析工作
- 网易裁员背后,芸芸众生,相煎何急
- ai背景合成_智能合成AI主播很危险,应立即取消!
- 关于使用yum“The program package-cleanup is...”的解决办法
- 我们用大数据创造没人能理解的人工智能
- Linux程序设计-7-复习重点
- 分布式web系统架构图及应用架构图
- WebIM 聊天 Demo
- WWW 指南-万维网联盟(World Wide Web)
- B2C,B2B,c2c是什么?
- nyoj54小明的存钱计划
- 互联网时代产品研发的思考
- excel如何在一列文字前统一加上固定文字
- bbp公式求圆周率、python_【并行计算】六种方法计算圆周率
- vue未登录跳转至登录页面
- Directx11教程(49) stencil的应用-镜面反射
- 我的世界服务器清道夫不显示,我的世界清道夫指令 | 手游网游页游攻略大全
- 亳州市消防支队乡镇(街道)消防工作站综合管理平台案例
- 美丽天天秒源码部分核心源码分享
热门文章
- 划痕实验 迁移面积自动统计_从Jupyter迁移到合作实验室
- 刚认识女孩说不要浪费时间_不要浪费时间寻找学习数据科学的最佳方法
- tableau 自定义省份_在Tableau中使用自定义图像映射
- FCN全卷积网络随笔
- VGAE(Variational graph auto-encoders)论文及代码解读
- leetcode74. 搜索二维矩阵(二分查找)
- leetcode457. 环形数组循环
- Go语言从入门到精通 - 数据类型转换
- Linux下安装Redis及搭建主从
- NYOJ 1009 So Easy[Ⅰ]【简单题】