redux中间件之redux-saga学习记录

中间件指的是action和store之间。是redux的中间件。
redux-thunk是将异步代码放到action之中,便于自动化测试和代码的拆分管理。
redux-saga也是异步代码拆分的中间件。
redux-sage将异步的逻辑放到单独的文件里。例如sagas.js,sagas文件也可以接收action

1、redux-saga的创建

yarn add redux-saga或者npm install redux-saga --save
a.从redux-saga中引入createSagaMiddleware生成中间件的 方法,
import createSagaMiddleware from 'redux-saga'
b.生成一个中间件
const sagaMiddleware = createSagaMiddleware()
c.将生成的中间件传入applyMiddleware()方法(与redux-thunk的使用进行对比,加深记忆)
在这里插入图片描述

2、redux-saga的使用

a.创建一个sagas.js文件,用于单独存放异步逻辑。
b.在store.js中引入saga.js,并调用sagaMiddleware.run(mySagas)方法传入引入的sagas文件。
c.重启项目
在这里插入图片描述

3、sagas.js捕捉action进行异步处理

sagas.js:可以接收组件的action,必须返回一个function* name(){}
a.从redux-saga/effects中引入{ takeEvery }方法,传入一个action类型和对应要执行的异步操作方法。
takeEvery 方法捕捉action执行异步函数。
b.从redux-saga/effects中引入{ put }方法,put方法进行获取到异步数据后的action派送,派送给reducer再由reducer继续执行 reducer→store→component的工作流程。

在这里插入图片描述

ajax成功与失败的处理(利用try catch)
在这里插入图片描述

redux-saga工作流程

捕捉数据请求的action→进行异步数据获取→put一个action给store→reducer→store数据更新→component

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值