美文网首页
Redux-saga 中间件

Redux-saga 中间件

作者: 参商_70a0 | 来源:发表于2019-10-08 09:56 被阅读0次

Redux-saga和thunk一样,可以进行异步代码的拆分。
不同的是redux thunk是将异步代码放入action。
而redux saga是将其放入外部的文件中处理。
(1)和thunk一样配置store

import {createStore, applyMiddleware} from "redux"
import reducer from "./reducer"
import createSagaMiddleware from 'redux-saga'
这里就引入了外部的文件
import mySaga from './sagas/sagas'
// import thunk from "_redux-thunk@2.3.0@redux-thunk";
const sagaMiddleware = createSagaMiddleware()

const store=createStore(
   reducer,
   applyMiddleware(sagaMiddleware)
)
sagaMiddleware.run(mySaga)
export default store;

(2)编写sagas.js
注:sagas中一定要导出generator函数
当接受到action类型为“GET_SAGA_ACTION”
运行fetchUser方法

import { call, put, takeEvery, takeLatest } from 'redux-saga/effects'
import {GET_SAGA_ACTION} from '../actionTypes' 
import axios from 'axios'
import {initListAction} from '../actionCreators'
function* mySaga() {
    yield takeEvery(GET_SAGA_ACTION, fetchUser);
}
function* fetchUser(){
    try{
        const res= yield axios.get('https://5ddfa840-ac8e-4521-bb15-135d3d86de70.mock.pstmn.io/api/todoList') 
        const action=initListAction(res.data);
        yield put(action);
    }catch(e){
        console.log("网络请求失败");
    }
}
export default mySaga;

具体流程:
dispatch一个action——》action会被sagas.js接收到
——》如果符合takeEvery里面那个字段,即‘GET_SAGA_ACTION’——》
调用fetchUser方法——》put方法会将新的action传给reducer

相关文章

  • Redux-saga

    Redux-saga 概述 redux-saga是一个用于管理redux应用异步操作的中间件,redux-saga...

  • Redux-saga

    Redux-saga学习笔记说到中间件Redux-saga之前不得不提一下Redux-thunk(详细请访问:ht...

  • 09-采用React Saga的心路历程

    我们在之前的实现中,对于异步 Action 的调用使用了 redux-saga 中间件。thunk 中间件通过增强...

  • Attempted import error: 'takeEve

    如题,在 React 项目中使用 redux-saga 中间件时,发现 takeEvery 在 redux-sag...

  • redux-saga的render优化

    当我们使用redux-saga(redux中间件)时,数据更新流程是,dispatch带上action,交给red...

  • redux-saga

    1 概述 redux-saga 是 redux 一个中间件,用于解决异步问题。 2 es6 Generator 解...

  • Redux-thunk的最佳使用实践——react-redux

    在前面的文章《到底什么是Redux中间件——基于Redux-thunk和Redux-saga理解分析》中,我们已经...

  • redux-saga中间件的使用

    1.下载安装redux-saga 2.配置:创建store时进行中间件的配置 3.mySaga.js

  • redux搭配中间件实现状态管理

    在Vue中可以使用vuex,在react可以使用dva(基于redux-saga实现)或者使用redux搭配中间件...

  • Redux-saga 中间件

    Redux-saga和thunk一样,可以进行异步代码的拆分。不同的是redux thunk是将异步代码放入act...

网友评论

      本文标题:Redux-saga 中间件

      本文链接:https://www.haomeiwen.com/subject/ivbguctx.html