2
假設我有一個組件呈現children
,但這些孩子可以是連接或基於計時器的更新組件。父組件不知道這一點。然而,父組件實現shouldComponentUpdate
進行性能優化。DoesComponentUpdate是否阻止連接的孩子更新
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
調用返回false
依然會得到更新?
如果時鐘使用定時器和本地組件狀態更新? – philk
https://codepen.io/anon/pen/YGWVXv – Benjamin
'shouldComponentUpdate'只會使用'shouldComponentUpdate'在塊級別上呈現更改。如果孩子期望使用'shouldComponentUpdate'從父母更新道具並且沒有更新,則孩子不會更新。如果有兒童特別處理的狀態變化(或從'connect'傳送的道具),那麼這些變化是分開的。 – Benjamin