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

时间:2017-03-31 02:27:56

标签: reactjs react-redux

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

1 个答案:

答案 0 :(得分:3)

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

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

如果返回true,则组件将更新,如果返回false,则不会重新呈现。

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

shouldComponentUpdate(nextProps, nextState) {
    return true;
}

即。总是更新道具/状态变化。

有时候,在生命周期方法中实现某些逻辑只能在必要时进行更新,但是大多数情况下默认情况下(总是返回true)工作正常。