更改數(shù)據(jù)的兩種方式:
1、直接更改變量;
2、建立所需修改變量的副本,進(jìn)行修改后替換原數(shù)據(jù)。
不直接改變數(shù)據(jù)的好處
1、可以幫助我們?cè)鰪?qiáng)組件和整體應(yīng)用性能。
2、更簡單的撤消/重做和步驟重現(xiàn)
3、不可變數(shù)據(jù)(Immutability)還使一些復(fù)雜的功能更容易實(shí)現(xiàn)。避免數(shù)據(jù)改變,使我們能夠保留對(duì)舊數(shù)據(jù)的引用,如果我們需要在它們之間切換。
4、追蹤變更(Tracking Changes)
確定可變對(duì)象是否已更改是復(fù)雜的,因?yàn)橹苯訉?duì)對(duì)象進(jìn)行更改。這樣就需要將當(dāng)前對(duì)象與先前的副本進(jìn)行比較,遍歷整個(gè)對(duì)象樹,并比較每個(gè)變量和值。這個(gè)過程可能變得越來越復(fù)雜。確定不可變對(duì)象如何改變是非常容易的。如果被引用的對(duì)象與之前不同,那么對(duì)象已經(jīng)改變了。僅此而已。
5、確定何時(shí)重新渲染(Determining When to Re-render in React)
React 中不可變數(shù)據(jù)最大好處在于當(dāng)您構(gòu)建簡單的 純(pure)組件 時(shí)。由于不可變數(shù)據(jù)可以更容易地確定是否已經(jīng)進(jìn)行了更改,這也有助于確定組件何時(shí)需要重新渲染。
與shouldComponentUpdate()相關(guān)。
數(shù)據(jù)的復(fù)制
數(shù)組
1、slice()方法可以返回一個(gè)數(shù)據(jù)的副本