標準的dom機制如下:
標準dom機制下傻工,用戶在對應用操作的時候是直接對真實的dom進行操作。
在react中,用戶對dom操作是對虛擬dom的操作中捆,用戶操作產(chǎn)生的數(shù)據(jù)改變或者state變量改變(事件函數(shù)對dom的操作)威鹿,都會保存到虛擬dom上,之后在批量的對這些更改進行diff算法計算轨香。
diff算法
處理方法: 對操作前后的dom樹同一層的節(jié)點進行對比忽你,一層一層對比。
在標準dom機制下:同一位置對比前后的dom節(jié)點臂容,發(fā)現(xiàn)節(jié)點改變了科雳,會繼續(xù)比較節(jié)點的子節(jié)點,一層層對比脓杉,找到不同的節(jié)點糟秘,然后更新節(jié)點。
在react的diff算法下球散,同一位置對比前后dom節(jié)點尿赚,只要dom節(jié)點更改時,就會刪除操作前的dom節(jié)點(包括子節(jié)點)蕉堰,替換為操作后的dom節(jié)點凌净。
當dom節(jié)點更改是,會大大減少dom樹的節(jié)點遍歷屋讶,可以實現(xiàn)快速渲染冰寻。