Angular 的 NgRx 中有多个实体而不是实体状态?
Multiple entity and not entity states in Angular's NgRx?
在我需要显示的组件上使用 Angular 9 和 NGRX:
- 最近的帖子列表;
- 热门帖子列表;
- 标签列表
- 保留搜索查询字符串
我创建了一个Post状态:
export interface PostState extends EntityState<Post> { }
问题
如果组件需要 Recent Posts, Top Posts, Tags 和 QueryString 我应该有 4 个状态吗?
我是否需要 2 Post 个状态(最近和热门),如果它们从数据库加载的方式不同(可能使用 Effects)?
如何将所有状态包裹在一个组件的状态中?
- 只有一个大国。您正在使用选择器来获取该状态的一部分。因此 4 个选择器(如果不需要分隔帖子,则为 3 个)
- 我会在这里使用效果,因为任何服务器请求都被视为副作用。
- 为了防止您的组件成为万事通,我建议使用名为 Facade 的抽象层。这样你的组件就可以通过 observables 从 Facade 获取数据并通过 Facade api 调度动作。在外观内部,您将拥有所需的所有状态切片(选择器)。
在我需要显示的组件上使用 Angular 9 和 NGRX:
- 最近的帖子列表;
- 热门帖子列表;
- 标签列表
- 保留搜索查询字符串
我创建了一个Post状态:
export interface PostState extends EntityState<Post> { }
问题
如果组件需要 Recent Posts, Top Posts, Tags 和 QueryString 我应该有 4 个状态吗?
我是否需要 2 Post 个状态(最近和热门),如果它们从数据库加载的方式不同(可能使用 Effects)?
如何将所有状态包裹在一个组件的状态中?
- 只有一个大国。您正在使用选择器来获取该状态的一部分。因此 4 个选择器(如果不需要分隔帖子,则为 3 个)
- 我会在这里使用效果,因为任何服务器请求都被视为副作用。
- 为了防止您的组件成为万事通,我建议使用名为 Facade 的抽象层。这样你的组件就可以通过 observables 从 Facade 获取数据并通过 Facade api 调度动作。在外观内部,您将拥有所需的所有状态切片(选择器)。