reactjs - 是什么让 React.memo 在阻止渲染方面不可靠?
问题描述
在React.memo 的文档中,它说:
此方法仅作为性能优化存在。不要依赖它来“阻止”渲染,因为这可能会导致错误。
我真的不明白这个警告。为什么不能依靠?如果它不一定阻止渲染,它是如何优化的?
我希望他们在这里更深入,但既然他们没有,有人可以详细说明一下吗?事实上,我根本不愿意使用它,因为这个警告使它的行为看起来很不清楚。
解决方案
也许,我们应该考虑一下官方文档中关于类似useMemo
功能的引用:
您可能依赖 useMemo 作为性能优化,而不是语义保证。
将来,React 可能会选择“忘记”一些先前记忆的值,并在下一次渲染时重新计算它们,例如为屏幕外组件释放内存。编写您的代码,使其在没有 useMemo 的情况下仍然可以工作——然后添加它以优化性能。
我相信这同样适用于React.memo
和useCallback
钩子,所以你不能 100% 依赖 React 不会“忘记”一些记忆的道具来释放一些内存。
推荐阅读
- .htaccess - 使用 .htaccess 将移动和桌面从 http 重定向到 https 版本
- node.js - 在flask 和node.js 中使用一个数据库| bcrypt
- android - 使用错误消息颜色更改 TextInputLayout 提示颜色
- reactjs - 如何在 React 传单 MapContainer 中渲染 geojson 多边形?
- javascript - Slick Carousel:隐藏非中心(活动)内容
- typescript - Vue3 Vuex Persist 未正确保存数据
- python - 嵌套的元组列表和分数列表
- c# - .NET WPF 中是否可以进行 C64 样式介绍?
- java - 通过单击另一个按钮 Java/Xml/Android Studio 禁用一个按钮
- c# - 当前上下文中不存在名称“请求”