我对NgRx还是陌生的,正在尝试把我的头缠住它。我了解目标是在不同类型的状态驻留一个数据存储区。我试图了解如何使用数据列表。
场景1 :
用户首先导航到一个列表,在这种情况下,会触发一种效果以从后端/ API检索列表。成功后,该列表将保存到商店,并且UI组件通过| async
响应可观察对象并呈现该列表。用户单击一个项目以查看详细信息。我们既可以将所选商品的ID存储在商店中,然后只需使用过滤器机制从商店中的列表数组中检索详细数据。或者,我们可以对服务器进行另一个效果调用以获取详细信息有效负载。我假设这里的决定点是列表是否包含详细信息页面所需的所有数据?
方案2 :假设商店中的列表包含详细信息页面所需的所有数据,并且用户单击列表中的项目,只需将所选项目的ID保存到商店中,然后导航到只需根据商店中选定的商品ID从列表中过滤掉明细数据的明细页面,当用户刷新明细页面上的浏览器URL时会发生什么?发生这种情况时,列表不再位于商店中,所选项目的ID也不再存在。但是,所选项目的ID在URL和路由中。您如何处理这种情况?您是否重建列表以检索详细记录?
方案3 :处理方案的最佳方法是什么,该方案具有整个列表中不同的数据子集。也许您需要查看一个“待定”项目列表和本周已创建的另一个项目列表,依此类推。将所有记录下载到存储中作为主列表,然后简单地过滤掉所需的列表似乎效率很低。对于不同的看法。我读过一些教程,在这些教程中,您可以在商店中找到主列表,然后只需在商店的另一部分中找到ID,即可组成不同的切片。这似乎很繁重,而且数据库已复制到客户端上。在商店中过滤列表的最佳方法是什么?
感谢您的帮助和见识。
答案 0 :(得分:2)
场景1:发现现场了!
方案2:视情况而定。
localStorage
方案3:在这里,保持状态正常化是关键(您将使用ID)。同样,我们不必一次加载所有实体,这可以部分完成。 The redux docs有一个性能部分,您可以阅读。