Redux 中 Saga 问题

Saga的工作方式是:

监听一些异步action是否发出,一旦发出,则进行异步处理,交由新的同步action改变reducer。

首先我们需要一个saga文件 :内容如下 只粘代码

//引入两个方法

             import { delay } from 'redux-saga'

            import { put, takeEvery , all } from 'redux-saga/effects'


         function* helloSaga() {

          console.log('Hello Sagas!');

    }

//Worker saga, 工作saga,这里执行异步语句

        function* addserver() {

              const {result} = yield fetch("/api/a.json").then(data=>data.json());

//发出一个新的Action到store去。

           yield put({"type":"ADD" , number : result});

}


//Watcher saga ,监听器saga

              function* watchaddserver() {

//takeEvery:当有action的type是第一个参数的时候,立刻执行第二个参数。

                yield takeEvery('ADDSERVER', addserver);

}


//默认暴露一个东西

          export default function* rootSaga() {

//并行一些Effect

         yield all([

                       helloSaga(),

                      watchaddserver()

   ]);

}

编辑主文件:


Redux 中 Saga 问题_第1张图片


到底什么是saga?:

是一个系列的工作文件,拦截action执行、执行异步、put出一个新的action改变reducer


个人总结如图:

Redux 中 Saga 问题_第2张图片

用saga做异步的时候,不需要写bindActionCreator了。

你可能感兴趣的:(Redux 中 Saga 问题)