千鋒教育web前端高頻面試題視頻教程,kerwin大話前端面試秘籍(附答案)

讀了React中的setState讓我聯(lián)想到了其他問題 比如:
1.對React中的setState的理解?
?etState這個方法在調(diào)用的時候是同步的,但是引起React的狀態(tài)更新是異步的 【React狀態(tài)更新是異步的】。
?setState第一個參數(shù)可以是一個對象,或者是一個函數(shù),而第二個參數(shù)是一個回調(diào)函數(shù)。
2.setState第二個參數(shù)的作用?
因為setState是一個異步的過程,所以說執(zhí)行完setState之后不能立刻更改state里面的值。如果需要對state數(shù)據(jù)更改監(jiān)聽,setState提供第二個參數(shù),就是用來監(jiān)聽state里面數(shù)據(jù)的更改,當(dāng)數(shù)據(jù)更改完成,調(diào)用回調(diào)函數(shù),用于可以實時的獲取到更新之后的數(shù)據(jù)
3.為什么setState設(shè)計為異步的?
·?setState設(shè)計為異步,可以顯著的提升性能:如果每次調(diào)用setState都進(jìn)行一次更新,那么意味著render函數(shù)會被頻繁調(diào)用,界面重新渲染,這樣效率是很低的;最好的辦法應(yīng)該是獲取到多個更新,之后進(jìn)行批量更新;
·?如果同步更新了state,但是還沒有執(zhí)行render函數(shù),而且peops依賴于state中的數(shù)據(jù),那么state和props不能保持同步;pstate和props不能保持一致性,會在開發(fā)中產(chǎn)生很多的問題;
標(biāo)簽: