React常見面試題 原理篇

2021-10-07 13:53:29 字數 1283 閱讀 3290

函式返回值是乙個vnodevnode在通過patch函式進行渲染

// 如下是乙個迴圈的編譯

const listelem =

>

index:

; title:

<

/li>)}

)}<

/ul>

// 編譯結果如下:

var listelem =

/*#__pure__*/react.

createelement

("ul"

,null,(

void0)

.state.list.

map(

function

(item, inedx)

,"index: "

, index,

"; title:"

, item.titlle);}

));

如何判斷是否處於batch update中,是需要根據isbatchingupdates進行判斷

因此:setstate無所謂同步和非同步,需要看是否命中batchupdate機制,是否命中batchupdate機制的判斷就是isbatchingupdate

increase()

)// 結束

// // isbatchingupdate = false

}// 在increase1中,當執行到setstate時,isbatchingupdate 已經為false

increase1()

)},0

)// 結束

// // isbatchingupdate = false

}componentdidmount()

) console.

log(

'count in body event'

,this

.state.count);}

)// 結束

// // isbatchingupdate = false

}

哪些不能夠命中 batchupdate 機制

increase()

更新過程

patch 更新的兩個階段

可能出現的效能問題(如果不將patch更新分為兩個階段的話可能出現的心梗問題)

fiber

常見面試題

1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...

常見面試題

1 一行 實現1 100之和 lst i for i in range 1,101 print sum lst 2 如何在乙個函式內部修改全域性變數?在函式內部新增 global 變數名 這樣就可以在本地作用域定義全域性作用域了 name 大明 def eat name1 global name n...

常見面試題

dns解析 發起tcp三次握手,並建立tcp連線 發起http請求 伺服器相應http請求並得到html 伺服器解析html 並對頁面進行渲染然後返回給使用者 首先先進行ioc容器的初始化 ioc 容器的初始化過程分為三步驟 resource 定位 beandefinition 的載入和解析,bea...