状态管理,适用于太大的角度应用

时间:2019-05-30 10:34:18

标签: angular ngrx nrwl-nx

最近我遇到了一个情况在我的应用程序中,我搜索了解决方案,但没有找到合适的答案,如你所知,我们的应用程序中有600多个模块。当用户导航到新页面时,浏览器可能会充满新状态及其数据。因此,我们计划在进入新模块时清除所有其他功能状态。并且仅在整个应用程序中保持根状态有效。我想知道我的方法是否正确?如果可以的话,最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

我不明白为什么拥有一个庞大的国家根本不是问题。

如果您要写很多东西,这将是一个问题,因为它是不可变的,因此您需要更新链中更高的所有引用。但是,如果仅当您使用其他模块时才触摸状态的另一部分,那么在更新商店时,您未修改的部分将被重用(通过引用),这确实很便宜。

另一方面,您可以做的是从离开当前模块的效果观察,并触发当前reducer的清理(重置为默认状态?)。

关于所有选择器,如果您使用createSelector,则使用的是备注,并且由于商店的“未使用”部分的引用不会更改,因此它将直接返回先前的值。

您为什么需要清理自己的状态?我很好奇。如果是因为性能问题,我会说这可能与它完全无关。