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