我应该首先更新什么,Redux商店或后端API



当我有一个后端API和一个将数据传递给组件的冗余状态时,我对正确的数据流感到困惑。

问题是:处理API和Redux这两种数据资源的正确方法是什么?我应该更新状态,然后用更新向API发出发送请求吗?或者,让redux在每次状态更改时为我发送请求?或者,我应该直接更新API,然后触发get请求来更新Redux商店吗?

我真的很困惑,不知道什么是正确的方法,我应该在未来使用时减少错误

感谢任何帮助,甚至给我发一篇关于这个问题的文章,我会读的谢谢

我应该更新状态,然后用更新向API发出发送请求吗?

这叫做"乐观更新";,优点是你的应用程序感觉快速且响应迅速,因为网络延迟对用户来说是隐藏的。不利的一面是,请求可能会失败,您必须撤消用户所做的操作,并通知他们它失败了。在我看来,对于简单的操作(例如在电子商务网站上将产品标记为最喜欢的产品(来说,这非常有效。

为了解释它是如何在脑海中的例子:

  1. 用户操作触发redux状态的更新(产品立即在页面上显示为收藏夹(
  2. 同时,API请求被触发以在后端喜欢该产品
  3. 再次从API获取产品数据并进行渲染
  4. 现在,要么请求已经成功更改了产品,因此在视觉上用户的页面上没有任何变化——对他们来说,这看起来像是在没有网络延迟的情况下进行的操作——要么请求失败,您显示了产品不是最喜欢的旧状态,并显示错误消息

或者,让redux在每次状态更改时为我发送该请求?

redux工具包的某些部分接受了这种方法,如果我没有弄错的话。如果你决定走这条路,我建议你不要自己实现它,而是依赖现有的库/中间件。

或者,我应该直接更新API,然后触发get请求来更新Redux商店吗?

这是一种经典、安全且简单的方法。

我的建议是:

  • 如果您有大量针对API的CRUD操作,并且您不想编写大量样板代码,请查看redux-toolkit(特别是https://redux-toolkit.js.org/rtk-query/overview(
  • 如果您关心应用程序的感知性能,请尝试乐观更新
  • 如果你想保持简单,只想让事情运转起来,那就遵循经典的方法

最新更新