Angular 的 NgRx 中有多个实体而不是实体状态?

Multiple entity and not entity states in Angular's NgRx?

在我需要显示的组件上使用 Angular 9 和 NGRX:

我创建了一个Post状态:

export interface PostState extends EntityState<Post> { }

问题

  1. 如果组件需要 Recent Posts, Top Posts, Tags 和 QueryString 我应该有 4 个状态吗?

  2. 我是否需要 2 Post 个状态(最近和热门),如果它们从数据库加载的方式不同(可能使用 Effects)?

  3. 如何将所有状态包裹在一个组件的状态中?

  1. 只有一个大国。您正在使用选择器来获取该状态的一部分。因此 4 个选择器(如果不需要分隔帖子,则为 3 个)
  2. 我会在这里使用效果,因为任何服务器请求都被视为副作用。
  3. 为了防止您的组件成为万事通,我建议使用名为 Facade 的抽象层。这样你的组件就可以通过 observables 从 Facade 获取数据并通过 Facade api 调度动作。在外观内部,您将拥有所需的所有状态切片(选择器)。