2

我对 NgRx 很陌生,我正在努力解决它。我了解目标是拥有一个存储不同类型状态的数据存储。我试图了解如何使用数据列表。

场景 1:用户首先导航到一个列表,在这种情况下会触发效果以从后端/API 检索列表。成功后,列表被保存到 store,UI 组件响应 observable via| async并渲染列表。用户单击项目以查看详细信息。我们可以将所选项目的 Id 存储在存储中,然后简单地使用过滤机制从存储中的列表数组中检索详细数据。或者,我们可以对服务器进行另一个效果调用以获取详细的有效负载。我假设这里的决策点是列表是否包含详细信息页面所需的所有数据?

场景 2:假设商店中的列表包含详细信息页面所需的所有数据,并且用户单击列表中的项目只需将所选项目的 id 保存到商店,然后导航到详细信息页面,其中详细数据被简单地过滤从基于商店中所选商品 id 的列表中,当用户在详情页面上刷新浏览器 URL 时会发生什么?发生这种情况时,列表不再存在于商店中,所选项目的 id 也不再存在。但是,所选项目的 id 在 URL 和路由中。您如何处理这种情况?您是否重建列表以检索详细记录?

场景 3:处理整个列表中有不同数据子集的场景的最佳方法是什么。也许您需要查看“待处理”项目的列表和本周已创建的另一个项目列表等。将所有记录作为主列表下载到商店然后简单地过滤掉所需的记录似乎非常低效为不同的观点。我已经阅读了教程,其中您在商店中拥有主列表,然后只需在商店的另一部分中拥有组成不同切片的 ID。这似乎很重,并且将数据库复制到客户端上。在商店中过滤列表的最佳方法是什么?

感谢您的帮助和洞察力。

4

1 回答 1

2

场景1:你是正确的!

场景2:视情况而定。

  • localStorage例如,您可以将数据存储在
  • 该列表必须通过后端 API 获取

场景 3:保持状态规范化是关键(您将使用 ID)。此外,我们不必一次加载所有实体,这可以部分完成。redux 文档有一个你可以阅读的性能部分。

于 2018-10-27T17:46:23.230 回答