您好,登錄后才能下訂單哦!
setState的連鎖反應(yīng)
這是一個(gè)React組件實(shí)現(xiàn)組件可交互所需的流程,render()輸出虛擬DOM,虛擬DOM轉(zhuǎn)為DOM,再在DOM上注冊(cè)事件,事件觸發(fā)setState()修改數(shù)據(jù),在每次調(diào)用setState方法時(shí),React會(huì)自動(dòng)執(zhí)行render方法來(lái)更新虛擬DOM,如果組件已經(jīng)被渲染,那么還會(huì)更新DOM中去。這個(gè)過(guò)程,setState就像一個(gè)點(diǎn)燃引擎的火源,發(fā)動(dòng)了React核心的調(diào)度層,然后直至渲染層的改變。
異步的setState
剛接觸React的同學(xué),對(duì)React的setState的使用偶爾會(huì)有一些偏頗,出現(xiàn)一些意料之外的情況。例如:
onFunction=()=>{
this.setState({value: []});
// 此刻立馬取this.state做一些同步操作
console.log(this.state.value);
所以經(jīng)常犯這個(gè)錯(cuò)的同學(xué)需要謹(jǐn)記下面這幾點(diǎn):
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。