我是React和Redux的新手,目前我正在构建一个非常简单的电子商务应用程序用于练习。这个应用程序正在从https://fakestoreapi.com/docs检索数据。我有点困惑,关于组织从我的Redux状态调用什么的最佳方法,以及从API调用什么。
我是否应该在App.js渲染时调用一次API来获取所有产品,然后将获取的产品(沿着所有数据,如descr,价格,图像等)存储在我的Redux状态中?然后当查看产品列表页面或单个产品页面时,我会直接从Redux状态中提取数据?
或者,我不应该在Redux状态下存储任何产品数据,而是在每次呈现Product List页面和Single Product页面时调用API?
另外,关于购物车状态,对于购物车中的每一个项目,我是否应该在Redux状态中存储所有的细节(即标题,描述,价格,图像等)?那么当渲染购物车页面时,我只需要从Redux中提取这些细节?
或者,我应该在Redux状态下存储产品ID和数量吗?然后在查看购物车页面时,我将从API中获取购物车中每个项目的产品详细信息?
在我看来,我可以看到这两种方法的优缺点,但我想知道是否有一些最佳实践,或者在尝试选择理想方法时应该考虑什么的建议?
2条答案
按热度按时间1yjd4xko1#
这可能有点令人困惑,但你必须改变你看待你的全球状态的方式。
国家:我们可以存储用户的数据,他的行动,主题设置和其他国家。因为这些是用户的信息,我们不想在他的会话多次获取。
您还可以将来自API的响应存储到State中。这样您就可以更好地处理它。如果您认为数据不会为某个用户更改。那么您可以使用全局状态而不是进行API调用。
如果您的操作使数据更改,请执行API调用。
在购物车的情况下。您应该将数据存储在您的状态中。因为您不想向您的API发出多个请求。将数据保存在状态中将有助于更好的用户体验,并将节省大量API调用的成本
lndjwyie2#
所以据我所知
在server.js第一次渲染的时候,将来自API的数据存储在redux存储中是一个很好的方法。因为如果你想在其他组件中使用相同的数据,那么很容易有一个全局存储,在那里你可以一次渲染多个项目。