useMemo 提供 Redux
P粉845862826
2023-08-25 21:04:43
<p>我是 Redux 新手,我希望盡可能提高 Web 應用程式的效能。 </p>
<p>我在 redux 中有一個狀態,我將其儲存在變數中以便稍後顯示。 </p>
<p>這是代碼:</p>
<pre class="brush:php;toolbar:false;">constmetricsState = useSelector((state: MetricsStateObject) => state.MetricsState);
const myMetrics =metricState.myMetrics;</pre>
<p>我發現 useMemo 在資料沒有變化的情況下不會重新渲染,從而提高了效能。 </p>
<p>所以我想知道 <code>const myMetrics = useMemo(() =>metricsState.myMetrics, [metricsState.myMetrics]);</code> 是一個好的做法,還是完全沒用? </p>
<p>感謝您的寶貴時間。 </p>
先說結論吧,完全沒用。
為什麼? 因為metricsState.myMetrics
只是一個取值
過程,並不涉及昂貴的計算。但是
useMemo
本身就消耗了一定的計算量。所以我認為這屬於過早優化
useMemo
用於高成本運算,您不想執行每個渲染。喜歡或類似的東西。您僅在
megaBigArray
發生變化時計算該變數。在您的情況下,無論如何,程式碼都會在每次渲染時運行,但是
useSelector
應該僅在您選擇的商店部分發生更改時觸發渲染。所以沒有它你應該也能過得很好。