反应-冗余连接是否会导致重新渲染



我有一个组件,其中没有组件WillRecieveProps,也没有其他函数正在更改状态,尽管每当存储更新时,组件(包装在连接中(都会被重新渲染(这是我想要的,但我不明白在没有状态的情况下它是如何发生的(。我知道如果组件已更改,Connect 会为组件提供新道具,但这会导致组件重新渲染吗?

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

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

它返回 true,则组件将更新,如果返回 false,则不会重新渲染。

如果我们不将此方法添加到组件中,则使用默认实现,其简单如下:

shouldComponentUpdate(nextProps, nextState) {
    return true;
}

即始终更新道具/状态更改。

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

相关内容

最新更新