學習react優化效能的時候,在render之前,生命週期shouldcomponentupdate裡判斷前後兩次資料是否一致,使用了foreach巢狀if語句,如果滿足條件想直接break跳出foreach迴圈,但事實並沒有想的那麼簡單,**直接丟擲異常。查閱資料原來:
接著想了個乙個可以實現的辦法,具體**如下:
1配合使用try catch,滿足條件時throw乙個錯誤來跳出迴圈。//生命週期 只有當前後資料不一致時才渲染
2shouldcomponentupdate(nextprops,nextstate)
14})
15 }catch
(err)
18 }else
21return isrender //
true or false
22 }
但實際上這裡使用for迴圈配合break足矣,如下:
1//生命週期 只有當前後資料不一致時才渲染
2shouldcomponentupdate(nextprops,nextstate)13}
14 }else
17return isrender //
true or false
18 }
foreach 使用技巧
有段時間沒有寫部落格了,主要是實驗室裡事情太多。今天被乙個小問題糾結的了半天,不過最終還是解決了。php裡面foreach大家都知道,有兩種形式。即 第一種格式遍歷給定的 array expression 陣列。每次迴圈中,當前單元的值被賦給 value 並且陣列內部的指標向前移一步 因此下一次迴圈...
python 多程序執行時程序提前終止?
寫了一段 發現程序沒跑完就提前終止了?原因可能是程序執行一半出錯了!注意多執行緒情況下不報錯!from multiprocessing import process import os from multiprocessing import pool def run proc i a i 1 pri...
Js中forEach跳出本次迴圈和終止迴圈
可使用return語句跳出本次迴圈,執行下一次迴圈 var arr 1 2,3 4,5 6 arr.foreach item console.log item 將輸出 1 2 4 5 6,3不會輸出 foreach無法通過正常流程 如break 終止迴圈,但可通過丟擲異常的方式實現終止迴圈 var ...