假设我有一个呈现children
的组件,但这些子组件可以是redux
连接或基于计时器的更新组件。父组件不知道这一点。然而,父组件实现了shouldComponentUpdate
以进行性能优化。
class Container extends React.Component {
shouldComponentUpdate(nextProps, nextState) { return shallowCompare(this, nextProps, nextState) }
render() {
return <div>
<h1>{this.props.title}</h1>
{ children }
</div>
}
}
可以说,Clock
是一个自我更新/连接的组件。在这个星座中:
<Container title="Current Time">
<Clock/>
</Container>
Clock
由于redux
状态更改或内部超时(尽管它已实现),但title
仍然会更新,尽管其父组件componentShouldUpdate
永远不会更改,因此{ {1}}调用返回false
?
答案 0 :(得分:7)
如果int d = "orange";
inw d = 4;
收到来自Clock
的道具,且Container
由于Container
而未更新,则shouldComponentUpdate
将不会更新。如果它连接到商店,那么它应该更新,因为它将直接接收道具。