redux很精简,只处理同步数据流, 异步交给中间件处理
view -> action -> reducer -> store
-
生猛的就不用中间件
使用:在view层中发起api请求,在请求的回调中dispatch(action)
缺点:view和modal耦合 -
redux-thunk (模板代码有点多但是场景基本cover得住)
使用:redux中action默认返回的是个对象{type: ‘GET_ALL_DATA’, payload: {name: ‘lala’}}
redux-thunk允许你action可以返回是个函数,在函数中进行api请求,并在请求成功/失败回调中发送对应成功/失败type的action
缺点:模板代码多,三种类型的type(start、success、fail) -
redux-promise (比redux-thunk模板代码精简些,缺状态)
使用:action返回的变回个对象,payload直接把api的promise返回,中间件替你写了promise.then成功失败的处理过程,
你不用写三种类型的type了,中间件在payload添加了status状态,供你去区别action
缺点:中间件把start状态给吃了,就暴露了success、fail,要是你想要start状态就尴尬了 -
redux-saga (有学习成本,越复杂越适合用)
使用:跳出三界之外,单拉线程,监听普通的action,调用处理函数,再发出新的action。
适于解决复杂的异步场景,比如用户一个动作要改变两个state,redux-thunk、redux-promise要么在action冗余要么在reducer冗余
缺点:generator函数、redux-saga api、响应式编程思维的学习成本
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。