
image.png
流程
1、元素類型不相同時
直接將原VDOM樹上的節(jié)點及其節(jié)點下所有的后代節(jié)點刪除,然后替換為新VDOM樹上同一位置的節(jié)點
2、元素類型相同時
如果是DOM節(jié)點,例如
<div className="old" title="老節(jié)點" />
<div className="new" title="新節(jié)點" />
通過比較React知道需要修改className屬性和title屬性
如果是組件,組件實例保持不變,更新 props。值得注意的是,這時候調(diào)用組件實例的 componentWillReceiveProps () 方法。然后通過 shouldComponentUpdate 返回值決定是否調(diào)用 render 方法
處理完該節(jié)點后,依然繼續(xù)對子節(jié)點進行遞歸。