我是 Redux 新手,我希望尽可能提高 Web 应用程序的性能。
我在 redux 中有一个状态,我将其存储在变量中以便稍后显示。
这是代码:
constmetricsState = useSelector((state: MetricsStateObject) => state.MetricsState); const myMetrics =metricState.myMetrics;
我发现 useMemo 在数据没有变化的情况下不会重新渲染,从而提高了性能。
所以我想知道 const myMetrics = useMemo(() =>metricsState.myMetrics, [metricsState.myMetrics]); 是一个好的做法,还是完全没用?
感谢您的宝贵时间。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
先说结论吧,完全没用。
为什么? 因为metricsState.myMetrics只是一个取值过程,并不涉及昂贵的计算。但是
useMemo本身就消耗了一定的计算量。所以我认为这属于过早优化
useMemo用于高成本计算,您不想运行每个渲染。喜欢或者类似的东西。您仅在
megaBigArray发生变化时计算该变量。在您的情况下,无论如何,该代码都会在每次渲染时运行,但是
useSelector应该仅在您选择的商店部分发生更改时触发渲染。所以没有它你应该也能过得很好。