reactjs - 为什么 Context API 在高频更新方面比 Redux 差?
问题描述
看到很多文章说 Redux 在性能上比 Context API 比高频更新要好,但没有具体说明原因。
是什么让人们说 Redux 在高频更新方面优于 Context API?
解决方案
我在我的帖子Why React Context is Not a "State Management" Tool (and Why It doesn't Replace Redux)、React、Redux 和 Context Behavior以及React-Redux 的历史和实现中对此进行了广泛的讨论。
总结:目前,将新值传递给 a会<MyContext.Provider>
强制订阅该上下文的每个组件重新渲染。如果一个组件只关心 Context 值的一部分并且那部分没有改变,那么就没有办法摆脱困境。
此外,React 目前必须做大量工作来循环整个组件树,以确定哪些组件订阅了给定的上下文。
另一方面,React-Redux 依赖于对 Redux 存储的直接订阅。它在分派操作时运行您的选择器,并且仅在提取的数据发生更改时强制该组件重新呈现。因此,目前,在大多数情况下,这提供了比 Context 更好的性能,因为对于给定的更改需要重新渲染的组件更少。
React 团队一直在研究“上下文选择器”和“惰性上下文传播”的一些潜在实现,这可能有助于在未来加快速度。目前还没有关于何时发布这些内容的时间表。
推荐阅读
- python - Geopy:使用地址创建单独的纬度和经度数据框列
- python - 将单个 csv 文件中的不同列导入到 postgresql 数据库中的不同表中
- html - 如何移动电子邮件在同一高度下的名字。输入框已经是一样的宽度
- c++ - linux 64位操作系统上的位移
- javascript - js操作符“+”让我一头雾水
- c++ - 无序二叉树实现
- php - 通过标签获取 Instagram 照片,通过 php
- python - 如何在 Python 3 中腌制 QPixmap 对象字典
- javascript - axios获取带有多个参数的请求传递给mysql查询
- python - 从本地安装依赖项时 pipenv install 命令失败