P粉1460805562023-08-26 16:13:29
先說結論吧,完全沒用。
為什麼? 因為metricsState.myMetrics
只是一個取值
過程,並不涉及昂貴的計算。
但是useMemo
本身就消耗了一定的計算量。
所以我認為這屬於過早優化
P粉7261339172023-08-26 09:26:32
useMemo
用於高成本運算,您不想執行每個渲染。喜歡
const some = useMemo(()=> megaBigArray.reduce((acc,i)=>acc*i,0), [megaBigArray])
或類似的東西。您僅在 megaBigArray
發生變化時計算該變數。
在您的情況下,無論如何,程式碼都會在每次渲染時運行,但是 useSelector
應該僅在您選擇的商店部分發生更改時觸發渲染。所以沒有它你應該也能過得很好。