redux - 如何管理 Redux/ngrx 状态下的实体?
问题描述
我们一直ngrx
在我们的应用程序中使用状态管理。由于ngrx
并redux
遵循相同的状态管理原则,这个问题适用于两者。
对于状态管理,我们一直在使用normalizr
库来规范化来自服务器的任何传入数据。关于如何entities
在不同的状态切片之间共享,我们有以下问题。例如,
// app state
{
sliceA: sliceAState, // corresponds to feature module A, handled by reducerA
sliceA: sliceBState, // corresponds feature module B, handled by reducerB
}
sliceA 和 sliceB 都包含一个list
名为 的特定实体location
。现在这里的正确方法是什么
- 在两个状态切片中维护
location
实体 - 将来可能某些其他状态切片也可能需要相同的实体。 - 保持,
same state slice
但这需要跨模块交叉引用 - 还要注意我们使用延迟加载来加载不同的功能模块。
谢谢你。
解决方案
保持相同的状态切片,但这需要跨模块交叉引用 - 还要注意我们使用延迟加载来加载不同的功能模块。
这将是您遵守单一事实来源原则的最佳选择。
如果您开始在多个位置维护相同的数据,则每次数据更改时都需要更新多个数据源。如果只有一个事实来源,您就可以消除商店中出现不一致的可能性。
推荐阅读
- c# - EF Core 简单 GroupBy 抛出 InvalidOperationException 异常
- python - VS Code python 不会自动完成 scipy.stats
- python - 在 prod 和 dev 中拆分 settings.py 导致 ModuleNotFoundError,为什么?
- python - 如何使用“计数器”生成的列表绘制排名与计数
- python - 如何在Python中使用列表中的str作为变量
- php - 如何使用相同的验证规则验证在数组中收到的整个请求?
- bash - Jenkins - SSH 部署问题 - 无法删除目标文件夹中的文件,除了一个目录
- c# - 如何仅在用户单击 Blazor 中的复选框时启用按钮
- java - 连接到 SQLDeveloper 时出现问题(java.library.path 中没有 ocijdbc18)
- sql - SQL 检索期间的损耗