微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

redux异步中间件比较

redux很精简,只处理同步数据流, 异步交给中间件处理
view -> action -> reducer -> store

  1. 生猛的就不用中间件
    使用:在view层中发起api请求,在请求的回调中dispatch(action)
    缺点:view和modal耦合

  2. redux-thunk (模板代码有点多但是场景基本cover得住)
    使用:redux中action认返回的是个对象{type: ‘GET_ALL_DATA’, payload: {name: ‘lala’}}
    redux-thunk允许你action可以返回是个函数,在函数中进行api请求,并在请求成功/失败回调中发送对应成功/失败type的action
    缺点:模板代码多,三种类型的type(start、success、fail)

  3. redux-promise (比redux-thunk模板代码精简些,缺状态)
    使用:action返回的变回个对象,payload直接把api的promise返回,中间件替你写了promise.then成功失败的处理过程,
    你不用写三种类型的type了,中间件在payload添加了status状态,供你去区别action
    缺点:中间件把start状态给吃了,就暴露了success、fail,要是你想要start状态就尴尬了

  4. redux-saga (有学习成本,越复杂越适合用)
    使用:跳出三界之外,单拉线程,监听普通的action,调用处理函数,再发出新的action。
    适于解决复杂的异步场景,比如用户一个动作要改变两个state,redux-thunk、redux-promise要么在action冗余要么在reducer冗余
    缺点:generator函数、redux-saga api、响应式编程思维的学习成本

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐