【发布时间】:2017-11-29 17:48:19
【问题描述】:
为什么 React 的“只更新必要的”功能对性能很重要?
来自https://facebook.github.io/react/docs/rendering-elements.html#react-only-updates-whats-necessary
React 仅重新渲染已更改组件的功能是否会影响浏览器渲染速度/性能?
React 声称只更新需要更新的 UI 组件,而不是整个页面,可以提高性能。来自https://facebook.github.io/react/docs/optimizing-performance.html
在内部,React 使用了几种巧妙的技术来最大限度地减少更新 UI 所需的昂贵 DOM 操作的数量。对于许多应用程序,使用 React 将带来快速的用户界面,而无需做太多工作来专门优化性能。
在应用程序的更新/绘制循环中,不是必须重新绘制整个屏幕吗?如果浏览器必须在每一帧都重绘所有内容,浏览器如何从仅渲染(重绘?)一个元素中受益?浏览器有一个帧率 (MDN Frame Rate),那么帧率如何与“只更新必要的内容”相协调?
我看不出只更新浏览器中的一个元素会如何影响浏览器的绘制。在实际推送渲染之前,React 的 javascript 对象表示可能很快,但如果 React 只是将差异渲染到实际 DOM,这对性能有何帮助?
一个较低级别的问题可能是:浏览器如何在不重绘/重排布局时节省计算量?不是每一帧都要画吗?
我提到了这些其他的问题,这些问题是热门的,但没有专门解决我的问题:
【问题讨论】:
-
“刷整面墙还是重新刷一部分墙”哪个更省时更好?
-
@MayankShukla 在实际的宏观人类世界中,显然是画了墙的一部分。但是它在浏览器中是如何工作的呢?
标签: performance reactjs browser