我是新来的Redux,我想提高我的网页应用程序的性能尽可能多。
我在redux中有一个状态,我将其存储在一个变量中,以便稍后显示它。
以下是代码:
const metricsState = useSelector((state: MetricsStateObject) => state.MetricsState);
const myMetrics = metricsState.myMetrics;我看到,如果数据不发生变异,useMemo可以通过不重呈现来提高性能。
所以我想知道const myMetrics = useMemo(() => metricsState.myMetrics, [metricsState.myMetrics]);是一个很好的练习,还是完全没用?
谢谢您抽时间见我。
发布于 2022-11-29 12:21:55
让我先谈谈结论,这是完全无用的。
为什么?因为metricsState.myMetrics只是一个value-taking进程,不涉及昂贵的计算。
但是useMemo本身消耗了一定的计算量。
所以我认为这属于过早的优化
发布于 2022-11-29 12:22:38
useMemo是用于高成本计算的,您不希望运行每个呈现。喜欢
const something = useMemo(()=> megaBigArray.reduce((acc,i)=>acc*i,0), [megaBigArray])或者类似的东西。如果megaBigArray发生变化,则只计算该变量。
在您的示例中,该代码将以任何方式运行,但是当您选择change的一部分存储时,useSelector应该只触发呈现。所以没有它你应该很好。
https://stackoverflow.com/questions/74613349
复制相似问题