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