【发布时间】:2016-12-14 14:25:51
【问题描述】:
我正在使用 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) => {...});
我担心的是,如果在公共状态更改时有很多页面,所有选择器都会重新计算,即使我只需要重新计算当前页面使用的选择器。如果选择器需要做复杂的事情,我认为这可能会成为一个很大的性能问题。
有没有办法“暂停”从商店获取更新,直到我返回该页面?这样只会重新计算当前页面的选择器。
或者有没有其他方法可以避免不必要的计算?
【问题讨论】:
标签: angular redux ionic2 ngrx reselect