redux 异步中间件有什么意义呢?

Jiong
  • 52

当我想发送一个请求时,直接在fetch函数里写不就好了么,为什么要多一步中间件呢?

const mapDispatchToProps = ( dispatch )=>({

    fetchAndRenderArticle( articleName ){

        fetch(`http://localhost:3000/getFile?articleName=${articleName}`).then( res=> {
            return res.text();
        }).then( articleContent =>{
            dispatch({
                type:'fetchAndRenderArticle',         
                articleContent:articleContent
            });
        }).catch( err=>{
            console.log(err);
        });
    }
});
回复
阅读 1.9k
2 个回答
✓ 已被采纳

异步中间件是用来编写异步Action的。

其实你的问题更像为什么要用异步Action,请求封装成Action是为什么?

Action统一管理触发,reducer统一管理接收,并且更改状态。这只是一种设计模式,降低代码耦合度。

于是,你的问题,请求需要封装成异步Action,而异步Action依赖于异步中间件。这就是为什么需要redux异步中间件了。

今天也产生了这样的疑惑,我的想法是:1、便于维护管理,一旦服务端对请求参数有改变或者返回的数据发生变化那么可以在action中直接更改,不用到项目组件中去修改。2、多个组件需要根据不同的需求dispatch数据到store中,可以在异步action中根据不同的参数选择不同的获取方式,对请求后端数据的方法进行了复用。3、将异步获取数据逻辑从组件业务中抽离出来,方便管理。

宣传栏