區別:1、當節點元素類型相同,類別名稱不同時,vue認為是不同的元素,會刪除重新創建,而react認為是同類型節點,會進行修改操作;2、列表對比時,vue採用從兩端到中間的方式進行對比,而react則是從左到右進行對比。
本文操作環境:windows10系統、Vue2.9.6版,DELL G3電腦。
diff演算法:
對dom進行different比較不同的一種演算法(虛擬)
共同點:
vue和diff演算法,都是不進行跨層級比較,只做同級比較
不同點:
1.vue進行diff時,呼叫patch打補丁函數,一邊比較一邊給真實的dom打補丁,vue對比節點時,當節點元素類型相同,類名不同時,認為是不同的元素,刪除重新創建,而react認為是同類型的節點,進行修改操作
2.vue列表比較的時候,採用從兩端到中間的方式,舊集合和新集合兩端各存在兩個指針,兩兩進行比較,每次對比結束後,指針往佇列中間移動;react則是從左到右一次對比,利用元素的index和lastindex進行比較
#3.當一個集合把最後一個節點移動到最前面,react會把前面的節點依次向後移動,而Vue只會把最後一個節點放在最前面,這樣的操作來看,Vue的diff性能是高於react的
【相關推薦:《vue.js教程》】
以上是vue和react中的diff有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!