我应该在什么时候使用Redux Sagas?[已关闭]

bbmckpt7  于 2022-11-12  发布在  其他
关注(0)|答案(3)|浏览(154)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.

三年前就关门了。
Improve this question
我对Redux还是一个新手,还没有使用过Redux Sagas,所以我不确定什么是开始使用Sagas的好时机。或者其他解决方案。
当前的使用情形是:我有一个Redux操作,它调用一个Web API,在返回结果后,可能需要从其他1-20个API中获取数据。
传奇的用例是什么?替代方案是什么?我应该如何从这段代码开始。

p5fdfcr1

p5fdfcr11#

大多数项目都使用Redux Thunk来组织副作用。原则上,它给出了一个很好的结果:阅读和测试代码很容易(但仍然需要模拟网络请求)。但只要操作创建者(或thunk)的逻辑简单,这一切都是公平的。不幸的是,对于许多函数来说,代码变得更难阅读,这使得测试更加困难。
在这种情况下, Saga 来救援。ReduxSaga是组织副作用的另一种方法。您创建saga并编写事件流处理的所有逻辑,而不是调度ReduxThunk处理的函数。与调度thunk时执行的thunk不同,Sagas在应用程序启动后就会在后台运行。Sagas观察商店分派的所有操作,并决定如何处理它们。
在这一点上,我们可以分配传奇的三个关键好处:

  • 组织困难的副作用序列的简单性;
  • 声明式;
  • 测试的简单性。

如果你想知道如何把 Saga 付诸实践,检查我们的文章:https://blog.s-pro.io/use-redux-saga/,您可以在其中找到代码示例和更多内容!

0aydgbwb

0aydgbwb2#

你可能想看看Redux Thunk,这是一个非常明智和容易理解的异步Redux操作方法。

pxyaymoc

pxyaymoc3#

与redux thunks相比,传奇故事给予你一些优势,比如:

  • 等待操作的能力-(适用于:更好地分离模块,编写复杂的异步流,通过redux logger记录所有操作......)
  • 更易于测试
  • 像synchronous一样编写异步代码(与async/await相同,但目前有更好的浏览器支持)
  • 任务取消(本机承诺不支持取消)

如果你发现自己并不特别需要其中的任何一个,那么使用thunk可能会更容易一些,比如像蓝鸟这样的承诺库。
也就是说Redux Sagas很棒,但是如果你刚刚开始使用Redux,最好先坚持使用更简单的解决方案,一旦你感觉舒服了,就开始探索像Redux Sagas这样的库。

相关问题