目标:react间隔发送axios请求,获取json数据。
1. react-thunk(为实现)
在componentDidMount中调用一次mapDispatch中的方法,这个方法dispatch的参数是一个发送axios请求的函数,在函数中调用dispatch修改store。当页面加载完成时,会执行一次这个函数,修改store,对应的mapState的state会改变,故会重新render。我们此时在render函数中调用这个发送axios请求的函数,达到轮询。但这个很耗性能。我试图使用setTimeout来延迟轮询,这个操作只会增加任务队列长度,并不会性能优化。
2. redux-saga
在此之前,我使用的是redux-thunk。这里我们需要引用redux-saga。
引用方法的官方文档
import {
createStore, applyMiddleware, compose } from "redux";
import thunk from "redux-thunk";
import reducer from "./reducer";
import createSagaMiddleware from 'redux-saga'<