参考答案:
一般的异步请求,可以在 componentDidmount
中直接进⾏请求,⽆须借助redux。
但是在⼀定规模的项⽬中,上述⽅法很难进⾏异步流的管理,通常情况下我们会借助redux的异步中间件进⾏异步处理。
redux异步流中间件其实有很多,当下主流的异步中间件有两种redux-thunk
、redux-saga
。
redux-saga
或者redux-observable
额外的范式,上⼿简单##(2)使用redux-saga中间件
thunk function
: dispatch 的参数依然是⼀个纯粹的 action (FSA),⽽不是充满 “⿊魔法” thunk functiongenerator function
的 saga 实现,代码异常/请求失败 都可以直接通过 try/catch
语法直接捕获处理redux-saga
提供了⼤量的 Saga 辅助函数和 Effect 创建器供开发者使⽤,开发者⽆须封装或者简单封装即可使⽤redux-saga
不仅在使⽤难以理解的 generator function
,⽽且有数⼗个API,学习成本远超redux-thunk。最重要的是你的额外学习成本是只服务于这个库的,与redux-observable
不同,redux-observable
虽然也有额外学习成本但是背后是rxjs和⼀整套思想redux-saga
可以捕获action,然后执行一个函数,那么可以把异步代码放在这个函数中。
最近更新时间:2024-07-23