我看到了许多文章,Redux在性能上优于上下文API,而不是高频更新,但没有什么是具体的,也说明了原因。
是什么让人们说Redux比上下文API更适合高频更新?
发布于 2021-04-06 16:39:12
我在我的文章为什么React上下文不是一个“状态管理”工具(以及为什么它不取代Redux)、React、Redux和上下文行为和Redux的历史和实现中详细介绍了这一点。
总结:当前,向<MyContext.Provider>传递一个新值将强制每个订阅到该上下文的组件重新呈现。如果组件只关心上下文值的一部分,并且该部分没有改变,那么就无法退出。
此外,React目前必须做大量的工作来循环整个组件树,以确定哪些组件订阅了给定的上下文。
React Redux,另一方面,依赖于对Redux商店的直接订阅。它在分派操作时运行选择器,并且只有在提取的数据发生更改时才强制重新呈现该组件。因此,目前,在大多数情况下,这比上下文提供了更好的性能,因为对于给定的更改,需要重新呈现的组件较少。
React团队一直致力于“上下文选择器”和“延迟上下文传播”的一些潜在实现,这可能有助于在未来加快速度。现在还没有时间可以确定这些文件何时会发布。
发布于 2022-04-24 10:02:45
TL;DR
是的,因为正如markerikson所提到的,context API重新呈现了每个订阅的组件。但也有解决办法。
经过一番研究,我发现了这篇文章。有4种方法被提到。我在我的项目中尝试了“容器”。它确实解决了我的表演问题。
https://stackoverflow.com/questions/66972103
复制相似问题