我们现在使用的框架是 react, redux + saga
目前正在做一个组件,需要单独放在一个包内。前段时间,根据大家的建议,发现 useReducer + useContext 可以基本取代 redux + redux store,试下来,还是不错的。
但是,我们以前都是使用 redux-saga,统一处理异步调用和相关逻辑。虽然 saga 使用起来也是费劲( unit test 贼难写),但是,功能还是很强大的。比如,集中化处理,代码都在一下,以及 在 saga function 内,还能够灵活的 dispath action(s),触发其它的相关异步操作。
现在组件在一个单独的包内,没有使用 redux store,应该也没有办法添加 redux-saga 了吧(还是说,可以继续添加 saga 中间件)?那么,该怎么优雅的处理这些异步调用么?全用 hooks 么?
以某流程举个例子:
现在有一个用 redux 包装好的高阶组件,上面有一个 button, 点击 button,发送 action - 从某服务器取数据,然后 saga 监听到该 action,执行这个取数据的异步调用。调用成功取到数据后,再次发送 action,进行二次处理,等等。最后,发送一个 action,把最终结果更新到 store/state 。然后,前面的组件接受到更新,展示出来。
不知道没有了 saga 后,这一套连续的操作,有没有更好的或者新的处理方法?
特来请教大家。谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.