Redux reselect

527 阅读1分钟

最近在接触selector思想。redux的mapStateToProps引起大量的重复计算。reselect的诞生就是为了解决重复计算,期待能最大化的进行cache。Selector的实现和使用感觉都比较简单。要赞一下这个理念。

Selector支持的功能

  • selector中可以构造我们想要的props数据,从而最小化了store中需要存储的数据
  • 相同selector的结果不需要重复计算
  • selector之间可以层级嵌套的

Selector的使用

Selector的使用主要看是否需要带参数、重写回调函数等。使用具体参见github reselect 需要注意的问题是在selector的状态中未被修改的部分应该保持一样,否则会引起selector的重新计算,不能达到cache(应该是影响了equalityCheck)

Selector的实现

实现中的几个要点:

  • 输入的state是否相同(引用or值) #defaultEqualityCheck
  • createSelectorCreator 支持递归调用(功能1)
  • createStructuredSelector构造props

可以结合Immutable进行使用

加强版

后续还有selector的map等