gpt4 book ai didi

javascript - 我可以在 React 和 Redux 中发送 AJAX 调用,而无需使用操作创建器和缩减器吗?

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

我有一些 Ajax 请求,它们不直接操作我的应用程序状态。在react/redux应用程序中,是否有必要(或者有什么好处)为这些ajax请求分派(dispatch)一个 Action ,而不是直接在组件中发送ajax请求?

为了简化我的场景,我基本上有一个关于我的 redux 状态的对象列表。我正在使用表单将新对象发布到数据库,成功发布后我将重定向到列表页面,在该页面中发送 GET 请求并获取列表并更新状态。

发布新对象的 AJAX 调用并不直接操作我的状态。

与我合作的团队正在完成完整的 3 步 redux 异步步骤例如:'FETCH_REQUESTED''FETCH_SUCCESS''FETCH_FAIL'以及所有AJAX请求的相应reducer,这是一个很大的麻烦添加更多,reducers 似乎没有意义。

最佳答案

您绝对可以直接从组件发送 AJAX 调用!

Redux 是一个工具,可以使共享状态在全局范围内可供多个组件使用,并以可预测的方式进行更改。如果您认为没有必要,请不要这样做。

当不同的组件发出相同的 API 请求,然后以类似的方式更改状态时,在操作创建器中保留 AJAX 调用会很方便。如果您希望避免在已有一些可用缓存数据时触发请求,并且希望将此类检查保留在一个位置而不是分散在各个组件中,那么这也很方便。

也就是说,Redux 只关心全局状态如何更新,如果您只需要从某个组件发出 AJAX 请求,则不必为其编写操作创建器或 reducer ,除非您觉得方便.

一般来说,当您有许多复杂的组件时,您可能会考虑将代码重构为 Redux(和 Flux);不是您应该开始每个组件的内容。您可以仅使用您需要的部分(例如,仅使用同步内容),甚至在某些情况下完全避免使用它(例如,可折叠面板不必将其状态存储在存储中)。仅当您了解它在特定情况下给您带来的具体好处时才使用它,切勿“以防万一”或因为它很受欢迎。

另请参阅my answer to “How do dispatch a Redux action with a timeout?”

为了解决您的具体示例,如果您使用 Redux 给您带来的好处,您可能希望使用 Redux 来实现此目的:也许您调度一个操作来乐观地更新表单并立即显示新列表,并将其与获取的列表合并列出可用的时间,以便交互看起来是即时的。 是异步操作创建者的用例。如果您没有考虑这种用户体验复杂性,我不确定 Redux 是否有必要。

关于javascript - 我可以在 React 和 Redux 中发送 AJAX 调用,而无需使用操作创建器和缩减器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36635670/

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