gpt4 book ai didi

reactjs - Redux Thunk 和 Redux Saga 有什么区别?

转载 作者:行者123 更新时间:2023-12-03 13:12:55 25 4
gpt4 key购买 nike

Redux Thunk 和 Redux Saga 都是 Redux 的中间件。两者有什么区别以及如何确定何时使用 Redux Thunk 或 Redux Saga?

最佳答案

Redux Thunk 和 Redux Saga 都负责处理副作用。简而言之,应用于最常见的场景(异步函数,特别是 AJAX 调用),Thunk 允许 Promises 来处理它们,Saga 使用生成器。Thunk 使用简单,Promise 为许多开发人员所熟悉,Saga/Generators 更强大,但您需要学习它们。当 Promise 足够好时,Thunk 也足够好,当你定期处理更复杂的情况时,Saga 为你提供更好的工具。

举个例子,当您在路由/ View 中启动 AJAX 调用然后用户移动到另一个路由/ View 时会发生什么?无论如何,你能安全地让 reducer 改变状态吗? Saga 使得取消效果变得微不足道,而 Thunk 则需要你处理它,并且解决方案的扩展性不太好。

实际上,选择其中之一实际上取决于(同义反复)项目。

要记住的一件事是,这两个中间件可以共存,因此您可以从 Thunks 开始,并在需要时引入 Sagas(然后根据实际经验选择重构方式/重构内容...解决方案特别适合“学习项目”、MVP 等)一般来说,Sagas 更强大且更容易测试,但它们引入了许多新概念,如果您还学习其他技术(尤其是 Redux),这些概念可能会有点让人不知所措。

具体来说,在处理简单有效的 Redux 哲学(将 Action (文字对象)输入到 reducer (纯函数)中)时,您可以使用 Thunk 来处理副作用,它受到更多限制,但易于掌握(Promise .then().error()),或者使用 Saga,它要求你面对一个(强大的)概念,即你可以用这些操作做更复杂的事情。

还值得一提的是,(redux-)observable 有一个更复杂(甚至更强大)的范例来处理副作用,以防万一您不熟悉它(如果您已经熟悉,它可能会更容易使用)比学习 Saga)。

关于reactjs - Redux Thunk 和 Redux Saga 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com