RXJS Observables 和 Subjects 使用 redux 处理多源数据的良好实践
RXJS Observables and Subjects good practice with redux to process data with multiple sources
使用 redux 架构和 Observables,我在获取不同异步源后需要处理数据的情况下。
它应该是这样工作的:
- 顶级组件确保数据以正确的格式加载到商店中。
- 容器组件订阅了 4 个数据集,多亏了 combineLatest,我在收集每个和平时处理数据,
这似乎很有效,但我不太确定这是正确的做法。
在这种情况下,首选实施方式是什么?您将如何取消订阅服务 and/or 访问商店?您如何实例化您的可观察对象或主题?
我正在寻找任何最佳实践或模式。
你在使用 NgRx 吗?我假设是这样,因为这是实现 redux 模式的库。
我经常发现使用 NgRx 我不需要实现自己的 Subject/BehaviorSubject 而是构建选择器。
您可以构建一个组合所需数据集的选择器,以便组件可以简单地获取数据而无需了解商店的结构。
有了更多关于这个主题的经验,答案现在似乎很清楚:使用效果。
由于 API 调用是副作用,您的效果可以安静地请求数据并等待 combineLatest
以便组合不同的数据集。
完成后,效果仍然存在,您可以分派一个操作来存储数据。
然后,链接到已处理数据的选择器将为组件提供数据。
使用 redux 架构和 Observables,我在获取不同异步源后需要处理数据的情况下。
它应该是这样工作的:
- 顶级组件确保数据以正确的格式加载到商店中。
- 容器组件订阅了 4 个数据集,多亏了 combineLatest,我在收集每个和平时处理数据,
这似乎很有效,但我不太确定这是正确的做法。
在这种情况下,首选实施方式是什么?您将如何取消订阅服务 and/or 访问商店?您如何实例化您的可观察对象或主题?
我正在寻找任何最佳实践或模式。
你在使用 NgRx 吗?我假设是这样,因为这是实现 redux 模式的库。
我经常发现使用 NgRx 我不需要实现自己的 Subject/BehaviorSubject 而是构建选择器。
您可以构建一个组合所需数据集的选择器,以便组件可以简单地获取数据而无需了解商店的结构。
有了更多关于这个主题的经验,答案现在似乎很清楚:使用效果。
由于 API 调用是副作用,您的效果可以安静地请求数据并等待 combineLatest
以便组合不同的数据集。
完成后,效果仍然存在,您可以分派一个操作来存储数据。
然后,链接到已处理数据的选择器将为组件提供数据。