我有一个React组件,该组件通过mapStateToProps的实现连接到redux存储。 React-redux connect实现了一个浅等式的shouldComponentUpdate,如果prop不变(基于引用),它应该防止重新渲染。但是,除非我使组件显式纯净(使用PureComponent),否则当组件的父项重新呈现时,组件将重新呈现。这不应该是必需的,因为connect应该像PureComponent一样实现了shouldComponentUpdate。为什么会这样呢?具体来说,connect的实现与PureComponent有何不同?不会使包裹的组件变得纯净吗?
答案 0 :(得分:0)
连接应该像PureComponent一样实现了shouldComponentUpdate
connect
函数不会执行此操作。
PureComponent
为您提供shouldComponentUpdate
函数,该函数是一个占位符,您可以在其中放置性能调整代码。
coonect
采用了不同的方法,并提供了4个功能/占位符,而不是 。您可以使用全部四个或部分或全部不使用来微调性能。这些函数称为:
areStatesEqual
areStatePropsEqual
areOwnPropsEqual
areMergedPropsEqual
不是通过连接使其包装的组件纯净吗?
通过为您提供使用上述功能的选项,一切由您自己决定。您可以模仿shouldComponentUpdate
进行的浅层相等检查。