首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么上下文API在高频更新方面比Redux差?

为什么上下文API在高频更新方面比Redux差?
EN

Stack Overflow用户
提问于 2021-04-06 15:53:38
回答 2查看 1.7K关注 0票数 6

我看到了许多文章,Redux在性能上优于上下文API,而不是高频更新,但没有什么是具体的,也说明了原因。

是什么让人们说Redux比上下文API更适合高频更新?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-04-06 16:39:12

我在我的文章为什么React上下文不是一个“状态管理”工具(以及为什么它不取代Redux)React、Redux和上下文行为Redux的历史和实现中详细介绍了这一点。

总结:当前,向<MyContext.Provider>传递一个新值将强制每个订阅到该上下文的组件重新呈现。如果组件只关心上下文值的一部分,并且该部分没有改变,那么就无法退出。

此外,React目前必须做大量的工作来循环整个组件树,以确定哪些组件订阅了给定的上下文。

React Redux,另一方面,依赖于对Redux商店的直接订阅。它在分派操作时运行选择器,并且只有在提取的数据发生更改时才强制重新呈现该组件。因此,目前,在大多数情况下,这比上下文提供了更好的性能,因为对于给定的更改,需要重新呈现的组件较少。

React团队一直致力于“上下文选择器”和“延迟上下文传播”的一些潜在实现,这可能有助于在未来加快速度。现在还没有时间可以确定这些文件何时会发布。

票数 10
EN

Stack Overflow用户

发布于 2022-04-24 10:02:45

TL;DR

是的,因为正如markerikson所提到的,context API重新呈现了每个订阅的组件。但也有解决办法。

经过一番研究,我发现了这篇文章。有4种方法被提到。我在我的项目中尝试了“容器”。它确实解决了我的表演问题。

https://www.basefactor.com/global-state-with-react

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

https://stackoverflow.com/questions/66972103

复制
相关文章

相似问题

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