我应该为两个组件分离相同的实体集合吗?

Should I separate same entity collections for two components?

我在工作中遇到以下问题:

在我工作的 SPA 中,我有任务实体和仪表板功能。此外,我的目标是使用 ngrx 商店和实体来处理应用程序中的状态管理。仪表板功能分为名为 schedule 和 table.

的组件

时间表显示在某个时间跨度内已为某些资源分配的任务。 Table 已分页,可能包含已按计划显示的任务。因此,这两个组件可以显示任务集合的联合子集。

此外,它们将共享公共状态(选择)和功能(从网格拖放到计划)。更重要的是,我们谈论的是数据库中总共有数千个任务,网格页面最多可以有 1000 个任务,日程表有时可以有数百个任务。

希望,我已经为我的问题提供了一些背景信息:任务是否应该存储在单个集合中(由 ngrx-entity 处理)以避免冗余?或者每个组件应该有单独的集合?如果应该有一个集合,如何从该集合中删除不必要的任务以避免将所有实体加载到状态?

ngrx 和 flux 都是为了避免冗余,如果您需要在 2 个组件中使用相同的实体 - 那么您应该获得相同的实体,而不是从某个地方复制它,例如第二个 collection。

因为不同的组件需要不同的实体集,所以您需要考虑在您的商店中实施集合/列表。 例如,在一个状态下有 2 个附加变量,为每个组件存储一个 id 数组。首先是 select 个 ID,其次是 select 个实体。它将帮助您保持数据的一致性。

删除不需要的实体,这就是你需要自己实现的,例如你可以有一个删除id列表的操作,然后根据其他列表你可以检测哪些实体应该从实体中删除collection.