React-Redux 电子商务应用程序:在 Redux 状态中存储数据与调用 API

问题描述 投票:0回答:2

我是 React 和 Redux 的新手,目前我正在构建一个非常简单的电子商务应用程序用于练习。此应用程序正在从 https://fakestoreapi.com/docs 检索其数据。我对组织从 Redux 状态调用的内容与从 API 调用的内容的最佳方法有点困惑......

我是否应该在 App.js 渲染时调用 API 一次来获取所有产品,然后将获取的产品(及其所有数据,如描述、价格、图像等)存储在我的 Redux 状态中?那么在查看产品列表页面,或者单个产品页面时,我会直接从 Redux 状态中拉取数据吗?

或者,我是否应该不以 Redux 状态存储任何产品数据,而是在每次渲染产品列表页面和单个产品页面时调用 API?

此外,关于购物车状态,对于购物车中的每件商品,我是否应该将所有详细信息(即标题、描述、价格、图像等)存储在 Redux 状态中?然后在渲染购物车页面时,我只需从 Redux 中提取这些详细信息?

或者,我应该只将产品 ID 和数量存储在 Redux 状态中吗?然后,当查看购物车页面时,我会从 API 中获取购物车中每个商品的产品详细信息?

在我看来,我可以看到这两种方法的优点和缺点,但我想知道是否有一些最佳实践,或者在尝试选择理想方法时应考虑什么的建议?

谢谢!

reactjs api redux react-redux e-commerce
2个回答
1
投票

这可能有点令人困惑,但你必须改变看待全局状态的方式。

对于 State :我们可以在 State 中存储用户的数据、他的操作、主题设置等。因为这些是用户信息,我们不想在他的会话期间多次获取。

您还可以将 API 的响应存储到状态中。这样您就可以更好地处理它,并且如果您认为该特定用户的数据不会发生变化。那么您可以使用全局状态而不是进行 API 调用。

如果您的操作导致数据更改,而不是 API 调用。

如果是购物车。您应该将该数据存储在您的州中。因为您不想向 API 发出多个请求。将这些数据保存在 State 中将有助于改善用户体验,并节省大量 API 调用的成本


0
投票

据我了解

在 server.js 第一次渲染时将来自 API 的数据存储在 redux 存储中是一个好方法。因为如果你想在其他组件中使用相同的数据,那么很容易拥有一个全局存储,你可以通过一次渲染获取多个项目的数据。

© www.soinside.com 2019 - 2024. All rights reserved.