我正在使用 ngrx 开发 Ionic2 应用程序。
要从我的商店中选择数据,我正在使用reselect。
我有一些页面使用相同的数据(来自同一个减速器),但结合其他减速器数据,取决于当前页面(这意味着每个页面都有自己的重新选择器,但每个选择器至少有一个参数与其他重新选择器相同。因此,每当这些参数之一更改时,这些页面的所有重新选择器都需要重新计算)。
它看起来像这样:
page1 = createSelector(fromState1.getData, fromCommonState.getData,(data, commonData) => {...});
page2 = createSelector(fromState2.getData, fromCommonState.getData,(data, commonData) => {...});
page3 = createSelector(fromState3.getData, fromCommonState.getData,(data, commonData) => {...});
我担心的是,如果在公共状态更改时有很多页面,所有选择器都会重新计算,即使我只需要重新计算当前页面使用的选择器。我认为如果选择器需要做复杂的事情,这可能会成为一个很大的性能问题。
有没有办法“暂停”从商店获取更新,直到我回到那个页面?这样,只会重新计算当前页面的选择器。
还是有另一种方法可以避免不必要的计算?