react-redux 连接是否会导致重新渲染?

Does the react-redux connect cause rerender?

我有一个组件,其中没有 componentWillRecieveProps 并且没有其他函数正在改变状态,尽管每当商店更新时,组件(包装在连接中)正在重新渲染(这是我想要的,但我不明白没有状态它是如何发生的)。我知道 connect 会为组件提供新的道具,如果它们发生了变化,但这会导致组件重新渲染吗?

简短的回答是,道具的改变会导致组件重新渲染。查看生命周期方法 shouldComponentUpdate 可能会有所帮助。每次 propsstate 更改时,React 都会调用此函数以确定组件是否应重新渲染。它看起来像这样:

shouldComponentUpdate(nextProps, nextState) {
    // return boolean
}

如果 return 为真,则组件将更新,如果 return 为假,则不会重新渲染。

如果我们不将此方法添加到我们的组件中,则会使用默认实现,即:

shouldComponentUpdate(nextProps, nextState) {
    return true;
}

即始终更新 props/state 更改。

有时,出于性能原因,在此生命周期方法中实现一些逻辑以仅在必要时更新可能很有用,但大多数情况下,默认值(始终 return true)工作正常。