我正在使用重新选择库。 我有很多组件连接(在他们的stateProps)到某个选择器(用重新选择实现,让我们把它称为选择器A)。每当选择器A的参数(也是选择器称为B,C,D)发生更改时,选择器A将重新计算并分别为每个连接的组件调用。由于这个计算是密集的,这使我在性能上花费了很多。有没有办法避免这种情况并为所有人计算一次? 谢谢使用相同选择器的多个组件,重新选择
0
A
回答
0
重新选择库implements memoization for the selectors。只有当选择器的输入值改变时,才会重新计算使用createSelector函数创建的选择器。否则,选择器将返回其先前的memoized值 - 跨越组件。从reselect documentation:
如果输入选择器的值与先前对选择器的调用相同,它将返回先前计算的值,而不是调用转换函数。
这要求您在各个组件之间重复使用相同的选择器函数。通常,您会创建选择器以及缩减器(例如,在reducer.js中),这些选择器将构建您正在选择的状态。您还应该组合选择器以获得额外的智能,这样也可以记忆跨不同选择器共享的子状态。
+0
跨越多个组件的选择器。 另外值得一提的是我有多层次的选择器,一个在另一个之上。 所以我猜一些输入选择器正在改变。可能是因为输入选择器是“createSelector”选择器本身导致最深的选择器每次都获得与输入选择器不同的功能? –
相关问题
- 1. yii2选择小部件 - 多个选择相同的形式
- 2. 如何使多个选择输出,与单相同选择
- 3. 重新选择选择器结构
- 4. CSS中的逗号,使用相同CSS的多个选择器
- 5. jQuery选择器:多重选择vs select
- 6. 使用相同的选择器扩展组件 - Angular 2/Angular-CLI
- 7. jquery以编程方式重新选择多重选择不重新选择
- 8. 在多个选项卡中使用相同的选择框
- 9. 使用与nightwatch.js相同的选择器处理多个元素
- 10. 多个选择 - 相同的表
- 11. MYSQL多个选择相同的类别?
- 12. CSS:使用两个通用选择器来选择相同的元素
- 13. 使用AngularJS检测多个选择/下拉菜单的相同项目选择
- 14. 使用localStorage变量更新选择的多个选择字段
- 15. 多重选择器的jQuery
- 16. 基于另一个多重选择的多重选择
- 17. Silverlight组合框选择已更改或重新选择事件
- 18. jQuery选择器和CSS选择器是相同的集?
- 19. 使用Javascript从多个选择选择列表中选择值
- 20. 将通用选择器(*)与相邻选择器(+)结合使用
- 21. MySQL查询使用相同的选择模式选择2列
- 22. jQuery中的多重条件选择器
- 23. SWT TableViewer无选择的多重选择
- 24. Mysql,为多个值选择相同的列,不同的条件
- 25. 您已经多次使用相同的选择器
- 26. 多重选择器视图
- 27. 多重选择器jQuery
- 28. 如何根据数据库中的csv重新填充/重新选择/自动选择多个选择框值?
- 29. 如何从多个CSS选择器中选择使用水豚
- 30. angularjs - 过滤器选择选项再次选择选择组件的选项
你可能会看到咖喱。这将允许您在其他参数未更改时保持某种级别的缓存,并且仅在相关参数更改时才需要计算(请参阅https://medium.com/@kbrainwave/currying-in-javascript-ce6da2d324fe)我使用的是 – sfletche