虛擬dom的做用是更少的去操做真實DOM。
DOM Diff算法用來判斷哪些區域能夠更新哪些區域不須要更新,最終減少更新區域。react
改變虛擬DOM界面不會更新,可是改變真實DOM界面必定會更新,在react裏面做爲程序員咱們幾乎不須要去手動更新真實DOM,咱們只須要更新虛擬DOM,如何觸發虛擬DOM更新,就是更新組件的狀態,虛擬DOM就會從新產生,而後再產生真實dom,效率高不高主要體如今更新,界面一旦顯示出來以後就是各類操做。程序員
上圖顯示了
在react裏面只能利用setState()更新狀態,老數據的狀態是不能直接改變的,而是先產生一個新的數據,從新建立虛擬DOM樹,而後新老數據進行對比,體驗爲虛擬DOM樹的差別,最後更新差別對應到真實DOM,界面實現局部重繪,DOM Diff算法能夠實現一個最小的重繪。算法