[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函数中,使用taketakeEvery接受到view层传来的带有type的对象,然后执行相应的generator函数,在generator函数中的异步任务执行完成之后,一般是通过put方法(雷同于dispatch)去更新Store中的数据

个人简介

我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易,
但坚持一定很酷。欢迎大家一起讨论

主目录

与歌谣一起通关前端面试题

[Redux/Mobx] 在Redux中怎么发起网络请求?相关推荐

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

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

  2. [Redux/Mobx] 在React中你是怎么对异步方案进行选型的?

    [Redux/Mobx] 在React中你是怎么对异步方案进行选型的? 小项目使用简单的redux-thunk方案,增加的代码量极少,只有两个api,上手成本低 大项目使用基于redux-saga的d ...

  3. [Redux/Mobx] 在redux中,什么是store?

    [Redux/Mobx] 在redux中,什么是store? 单一数据源,整个应用数据保存的地方 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家一起讨论 主目 ...

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

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

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

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

  6. [Redux/Mobx] 说说redux的优缺点分别是什么?

    [Redux/Mobx] 说说redux的优缺点分别是什么? 优点 Redux轻量,生态丰富,可以结合流行的redux-thunk.redux-saga等进行使用 Redux的写法比较固定,团队应用中 ...

  7. [react] react中发起网络请求应该在哪个生命周期中进行?为什么?

    [react] react中发起网络请求应该在哪个生命周期中进行?为什么? 异步情况可以在componentDidMount()函数中进行. 同步的情况可以在componentWillMount()中 ...

  8. dio网络框架封装_Flutter 使用dio来发起网络请求以及Cookie管理

    前言 Flutter官方建议您使用 dio 来发起网络请求,在学习过程中,也尝试过用dart io中的HttpClient发起的请求,这里主要讲一下dio的使用以及CookieJar.CookieMa ...

  9. 鸿蒙开发-使用fetch发起网络请求

    场景 鸿蒙基于JS搭建HelloWorld并修改国际化文件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/118274050 在 ...

最新文章

  1. 关于NameError: name ‘train_test_split‘ is not defined错误提示
  2. # 秒转换成分钟_10分钟时间,我用Excel完成了别人一天的数据分析工作
  3. 网易裁员背后,芸芸众生,相煎何急
  4. ai背景合成_智能合成AI主播很危险,应立即取消!
  5. 关于使用yum“The program package-cleanup is...”的解决办法
  6. 我们用大数据创造没人能理解的人工智能
  7. Linux程序设计-7-复习重点
  8. 分布式web系统架构图及应用架构图
  9. WebIM 聊天 Demo
  10. WWW 指南-万维网联盟(World Wide Web)
  11. B2C,B2B,c2c是什么?
  12. nyoj54小明的存钱计划
  13. 互联网时代产品研发的思考
  14. excel如何在一列文字前统一加上固定文字
  15. bbp公式求圆周率、python_【并行计算】六种方法计算圆周率
  16. vue未登录跳转至登录页面
  17. Directx11教程(49) stencil的应用-镜面反射
  18. 我的世界服务器清道夫不显示,我的世界清道夫指令 | 手游网游页游攻略大全
  19. 亳州市消防支队乡镇(街道)消防工作站综合管理平台案例
  20. 美丽天天秒源码部分核心源码分享

热门文章

  1. 划痕实验 迁移面积自动统计_从Jupyter迁移到合作实验室
  2. 刚认识女孩说不要浪费时间_不要浪费时间寻找学习数据科学的最佳方法
  3. tableau 自定义省份_在Tableau中使用自定义图像映射
  4. FCN全卷积网络随笔
  5. VGAE(Variational graph auto-encoders)论文及代码解读
  6. leetcode74. 搜索二维矩阵(二分查找)
  7. leetcode457. 环形数组循环
  8. Go语言从入门到精通 - 数据类型转换
  9. Linux下安装Redis及搭建主从
  10. NYOJ 1009 So Easy[Ⅰ]【简单题】