摘要:方法實(shí)際會操作兩件事在前一個(gè)和下一個(gè)的基礎(chǔ)上,更新屬性和更新的子元素。對于更新屬性,我們在之前已經(jīng)分析了如果還有印象,它就是用來處理元素的屬性,樣式,事件監(jiān)聽器等等。下一步,我們就分析下遺留的方法未完待續(xù)
接上文,
React流程圖:
https://bogdan-lyashenko.gith...
通過ReactReconciler.receiveComponent方法,React實(shí)際會調(diào)用ReactDOMComponent的
receiveComponent方法,這個(gè)方法會接收傳遞進(jìn)來的render方法返回的新元素,然后將他膚質(zhì)給DOM組件的實(shí)例,然后調(diào)用更新方法。updateComponent方法實(shí)際會操作兩件事:在前一個(gè)props和下一個(gè)props的基礎(chǔ)上,更新DOM屬性和更新DOM的子元素。 對于更新DOM屬性,我們在之前已經(jīng)分析了_updateDOMProperties(srcrenderersdomsharedReactDOMComponent.js#946),如果還有印象,它就是用來處理HTML元素的屬性,樣式,事件監(jiān)聽器等等。下一步,我們就分析下遺留的_updateDOMChildren方法(srcrenderersdomsharedReactDOMComponent.js#1076)
(未完待續(xù))
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95963.html
摘要:接著,將返回的元素和之前的進(jìn)行比較的,以驗(yàn)證是否真的需要更新。我們看下代碼,代碼比較簡單好,對應(yīng)于我們的這個(gè)列子,我們對于方法的更改并不會對方法造成影響。所以我們進(jìn)入下一步,也就是對于節(jié)點(diǎn)的更新。 接上文, React流程圖:https://bogdan-lyashenko.gith... 如果組件真的需要更新 在組件剛開始更新過程時(shí),如果有定義componentWillUpdate方...
摘要:接上文,流程圖我們已經(jīng)知道掛載的工作流程,現(xiàn)在我們換個(gè)方向研究下方法,這個(gè)也是的重要組成部分。這個(gè)問題,我們會在下一篇文章中進(jìn)行解答。。。 接上文, React流程圖:https://bogdan-lyashenko.gith... this.setState 我們已經(jīng)知道掛載的工作流程,現(xiàn)在我們換個(gè)方向研究下--setState方法,這個(gè)也是React的重要組成部分。 首先,為什么我...
摘要:源碼里有個(gè)獨(dú)立的模塊管理組件的所有子元素。第一個(gè),實(shí)例化子元素使用并掛載它們。至于具體掛載流程,基于子元素類型的不同而有不同的掛載過程。掛載的過程基本完成了。 接上文, React流程圖:https://bogdan-lyashenko.gith... 創(chuàng)建初始子組件 在之前的步驟里,組件本身的構(gòu)建已經(jīng)完成,接下去,我們分析它們的子元素。總共分為兩步:掛載子元素(this.mountC...
摘要:技術(shù)上來說,當(dāng)方法被調(diào)用后或者發(fā)生改變后,方法都會被調(diào)用。下一步,會設(shè)置為。之后,檢測當(dāng)前更新是否由更新引起的。這是因?yàn)?,使用是?dǎo)致組件持久化更新,而會被方法的返回值重新賦值。 接上文, React流程圖:https://bogdan-lyashenko.gith... 更新組件 關(guān)于組件的更新,我們先看下代碼里的注釋: 對于已掛載組件的更新過程,React會首先調(diào)用component...
摘要:當(dāng)鼠標(biāo)事件發(fā)生時(shí),組件的最外層會進(jìn)行處理,然后通過幾層包裝器的處理后,會開始進(jìn)行批量更新操作。在這之后,會將這些事件處理成常見到樣子。 接上文, React流程圖:https://bogdan-lyashenko.gith... 回到最初 在流程圖中,也許你已經(jīng)注意到,setState方法可以通過幾種方式觸發(fā),更準(zhǔn)確的說,可以分為是否由外部引起的(也就是是否由用戶觸發(fā))。讓我們看下如下...
閱讀 2677·2021-11-24 09:38
閱讀 1987·2019-08-30 15:53
閱讀 1248·2019-08-30 15:44
閱讀 3240·2019-08-30 14:10
閱讀 3591·2019-08-29 16:29
閱讀 1811·2019-08-29 16:23
閱讀 1108·2019-08-29 16:20
閱讀 1481·2019-08-29 11:13