在我需要显示的组件上使用 Angular 9 和 NGRX:
- 最近的帖子列表;
- 热门帖子列表;
- 标签列表
- 保留搜索查询字符串
我创建了一个发布状态:
export interface PostState extends EntityState<Post> { }
问题
如果组件需要最近的帖子、热门帖子、标签和查询字符串,我应该有 4 种状态吗?
如果不同之处在于它们从数据库加载的方式(可能使用 Effects(,我是否需要 2 个发布状态(最近和顶部(?
如何将所有状态包装在组件的状态中?
- 只有一个大州。你正在使用选择器来获取该状态的一部分。因此有 4 个选择器(如果您不需要分隔帖子,则为 3 个(
- 我会在这里使用效果,因为任何服务器请求都被视为副作用。
- 为了防止你的组件成为万事通,我建议使用一个名为 Facade 的抽象层。这样,您的组件就可以通过可观察量从外观获取数据,并通过外观 API 调度操作。在立面内部,您将拥有所需的所有状态切片(选择器(。