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