文章詳情頁(yè)
javascript - ajax at didMount or willMount
瀏覽:184日期:2023-02-11 13:08:44
問(wèn)題描述
看了一下斷點(diǎn),順序是16-30-21-30.也就是willmount之后render,load這個(gè)異步方法在任務(wù)隊(duì)列中再執(zhí)行,setState,diff,然后render為啥都說(shuō)要在didmount里面ajax呢
問(wèn)題解答
回答1:無(wú)論是在willMounnt還是didMount觸發(fā)異步請(qǐng)求,都會(huì)render兩次。第一次是組件加載時(shí),第二次是在異步請(qǐng)求返回setState時(shí)。
但是,邏輯應(yīng)該是在顯示組件,比如有加載狀態(tài),然后去觸發(fā)請(qǐng)求。還有一個(gè)最重要的點(diǎn),react fiber更新之后,他會(huì)多次觸發(fā)willMounnt,如此會(huì)引起bug。所以,異步請(qǐng)求一般放在didMount。
標(biāo)簽:
JavaScript
上一條:javascript - js機(jī)制問(wèn)題,是否都是等主線程執(zhí)行完畢再執(zhí)行異步,如果主線程有好幾萬(wàn)行,或者上下文相關(guān)呢下一條:javascript - framework7 調(diào)攝像頭和相冊(cè)
相關(guān)文章:
1. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!2. html5和Flash對(duì)抗是什么情況?3. 在mac下出現(xiàn)了兩個(gè)docker環(huán)境4. 測(cè)試自動(dòng)化html元素選擇器元素ID或DataAttribute [關(guān)閉]5. 運(yùn)行python程序時(shí)出現(xiàn)“應(yīng)用程序發(fā)生異常”的內(nèi)存錯(cuò)誤?6. node.js - mongodb查找子對(duì)象的名稱為某個(gè)值的對(duì)象的方法7. spring-mvc - spring-session-redis HttpSessionListener失效8. javascript - QQ第三方登錄的問(wèn)題9. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統(tǒng)有創(chuàng)建日志文件,不寫(xiě)入日志信息。10. 正在使用electron和node.js做桌面應(yīng)用,需要實(shí)時(shí)監(jiān)聽(tīng)是否有網(wǎng)絡(luò)連接,node或者electron是否可以做到
排行榜

熱門(mén)標(biāo)簽
網(wǎng)公網(wǎng)安備