我是Redux的新手,我想尽可能提高我的Web应用程序的性能。
我在redux中有一个状态,我将它存储在一个变量中,以便稍后显示。
代码如下:
const metricsState = useSelector((state: MetricsStateObject) => state.MetricsState);
const myMetrics = metricsState.myMetrics;
我看到useMemo通过在数据没有变化时不重新呈现来提高性能。
所以我想知道const myMetrics = useMemo(() => metricsState.myMetrics, [metricsState.myMetrics]);
是一个好的实践,还是完全无用?
感谢您抽出宝贵时间。
2条答案
按热度按时间2izufjch1#
useMemo
用于高成本计算,您不希望运行每个渲染。或者类似的东西。你只计算变量,如果
megaBigArray
改变。在你的例子中,这段代码无论如何都会在每次渲染时运行,但是
useSelector
应该只在你选择的存储部分发生变化时触发渲染。qnyhuwrf2#
我先说说结论,完全没用。
为什么?因为
metricsState.myMetrics
只是一个value-taking
过程,不涉及昂贵的计算。但是
useMemo
本身消耗一定量的计算。所以我认为这属于过早优化