0

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

4

1 回答 1

1

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

如果您在其中写了很多内容,这将是一个问题,因为它是不可变的,您需要更新链中更高的所有引用。但是如果你只在不同的模块上触摸状态的另一部分,那么当更新商店时,你没有修改的部分将被重用(通过引用),这真的很便宜。

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

关于所有选择器,如果您使用createSelector它正在使用记忆化,因此对于存储的“未使用”部分的引用不会更改,它将直接返回以前的值。

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

于 2019-05-30T11:02:10.810 回答