shouldComponentUpdate是否会阻止已连接的子级进行更新

时间:2016-09-16 01:03:05

标签: reactjs redux

假设我有一个呈现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

1 个答案:

答案 0 :(得分:7)

如果int d = "orange"; inw d = 4; 收到来自Clock的道具,且Container由于Container而未更新,则shouldComponentUpdate将不会更新。如果它连接到商店,那么它应该更新,因为它将直接接收道具。