看了一下斷點,順序是16-30-21-30.也就是willmount之後render,load這個非同步方法在任務佇列中再執行,setState, diff,然後render為啥都說要在didmount裡面ajax呢
欢迎选择我的课程,让我们一起见证您的进步~~
無論是在willMounnt還是didMount觸發非同步請求,都會render兩次。第一次是元件載入時,第二次是在非同步請求回傳setState時。
但是,邏輯應該是在顯示元件,例如有載入狀態,然後去觸發請求。還有一個最重要的點,react fiber更新之後,他會多次觸發willMounnt,如此會造成bug。所以,非同步請求一般放在didMount。
無論是在willMounnt還是didMount觸發非同步請求,都會render兩次。第一次是元件載入時,第二次是在非同步請求回傳setState時。
但是,邏輯應該是在顯示元件,例如有載入狀態,然後去觸發請求。還有一個最重要的點,react fiber更新之後,他會多次觸發willMounnt,如此會造成bug。所以,非同步請求一般放在didMount。