當(dāng)一個組件的 props 或 state 改變,React 會構(gòu)造一個新的虛擬 DOM 和舊的進(jìn)行對比來決定真實(shí) DOM 更新的必要性,只有在它們不相等的時候,React 才會使用盡量少的改動更新 DOM。
React 會非常頻繁的調(diào)用shouldComponentUpdate,所以要確保shouldComponentUpdate的執(zhí)行速度夠快。shouldComponentUpdate是在react創(chuàng)造虛擬dom之前進(jìn)行判斷,所以從根源上提升性能,只有在shouldComponentUpdate返回true之后,react才創(chuàng)造虛擬dom,然后對比組件樹,對變化的組件才進(jìn)行渲染,沒變化的組件只進(jìn)行對比,不更新。