为什么使用reselect
mapStateToProps调用其中函数去计算某个状态。这个状态在每一次组件更新的时候都会重新计算。如果state树的结构比较大或者运算复杂,每一次组件更新的时候都进行计算的话,将会导致性能问题.Reselect能够帮助redux来避免不必要的重新计算过程。
reselect主要API使用
- createSelector(…inputSelectors|[inputSelectors],resultFunc)
函数createSelector来创建一个记忆selectors。createSelector接受一个或者多个selectors,或者一个selectors数组,计算他们的值并且作为参数传递给resultFunc。如果Redux的state发生改变造成input-selector的值发生改变,selector会调用变换函数,依据input-selector做参数,返回一个结果.如果input-selector返回的结果和前面的一样,那么就会直接返回有关state,会省略变换函数的调用.经过createSelector创建的selector应该是immutable(不变的).(由此可见在项目里与Immutble.js
可以完美配合)
示例如下:
 - createStructuredSelector({inputSelectors}, selectorCreator =
createSelector)
在普通的模式下使用createStructuredSelector函数可以提