react元件渲染原理

2021-09-12 00:16:07 字數 794 閱讀 8806

jsx**經過babel編譯成react.createelement的表示式。element在react裡,是組成虛擬dom 樹的節點,用來描述在瀏覽器上看到什麼。它的引數有三個:

1、type -> 標籤

2、attributes -> 標籤屬性,沒有的話,可以為null

3、children -> 標籤的子節點

e.g.return(

react.createelement(

『div』,

,'hello, world』

),)

react.createelement的表示式會在render函式被呼叫的時候執行。當render函式被呼叫的時候,會返回乙個element,element不一定是object型別。

擴充:diff演算法

兩個相同的元件產生類似的dom結構,不同元件產生不同dom結構;

對於同一層次的一組子節點,它們可以通過唯一的id區分。

不同節點型別:react將不會在去對比子節點。因為不同的元件dom結構會不相同,所以就沒有必要在去對比子節點了。

相同節點型別:dom型別節點,react會對比它們的屬性,只改變需要改變的屬性;自定義節點型別邏輯都在react元件裡面,所以它能做的就是根據新節點的props去更新原來根節點的元件例項,觸發乙個更新的過程,最後在對所有的child節點在進行diff的遞迴比較更新;

子節點比較:依次比較,順序不同即使仍存在的節點依舊會被解除安裝重建,可以加null保持dom結構的穩定性,也可以給節點配置key,讓react可以識別節點是否存在,只在指定位置建立節點插入。

react 渲染原理

一 jsx如何生成element 這裡是一段寫在render裡的jsx return hello,this is react start to learn right now right reserve.首先,它會經過babel編譯成react.createelement的表示式。return re...

React元件及渲染

首先來說一下什麼是react元件,它其實是頁面上的一部分,例如標題 搜尋框 按鈕等都可以是乙個元件。react的元件又分為函式元件 和class元件。函式元件定義可以如下 這是乙個函式元件,它的本質其實是j ascript函式。它接收唯一帶有資料的 props 代表屬性 物件與並返回乙個react元...

react更新渲染及渲染原理

觸發元件的更新有兩種更新方式 props以及state改變帶來的更新。本次主要解析state改變帶來的更新。整個過程流程圖如下 1 一般改變state,都是從setstate開始,這個函式被呼叫之後,會將我們傳入的state放進pendingstate的陣列裡存起來,然後判斷當前流程是否處於批量更新...