函式返回值是乙個vnode
vnode
在通過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...