React的Reconciliation算法原理

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é)點進行遞歸。

---來自https://juejin.cn/book/6844733816460804104

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容