首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带Redux的useMemo

带Redux的useMemo
EN

Stack Overflow用户
提问于 2022-11-29 11:25:58
回答 2查看 30关注 0票数 0

我是新来的Redux,我想提高我的网页应用程序的性能尽可能多。

我在redux中有一个状态,我将其存储在一个变量中,以便稍后显示它。

以下是代码:

代码语言:javascript
复制
const metricsState = useSelector((state: MetricsStateObject) => state.MetricsState);
const myMetrics = metricsState.myMetrics;

我看到,如果数据不发生变异,useMemo可以通过不重呈现来提高性能。

所以我想知道const myMetrics = useMemo(() => metricsState.myMetrics, [metricsState.myMetrics]);是一个很好的练习,还是完全没用?

谢谢您抽时间见我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-11-29 12:21:55

让我先谈谈结论,这是完全无用的。

为什么?因为metricsState.myMetrics只是一个value-taking进程,不涉及昂贵的计算。

但是useMemo本身消耗了一定的计算量。

所以我认为这属于过早的优化

票数 0
EN

Stack Overflow用户

发布于 2022-11-29 12:22:38

useMemo是用于高成本计算的,您不希望运行每个呈现。喜欢

代码语言:javascript
复制
const something = useMemo(()=> megaBigArray.reduce((acc,i)=>acc*i,0), [megaBigArray])

或者类似的东西。如果megaBigArray发生变化,则只计算该变量。

在您的示例中,该代码将以任何方式运行,但是当您选择change的一部分存储时,useSelector应该只触发呈现。所以没有它你应该很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74613349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档