Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance React是否仅重新渲染更改的内容有利于渲染速度?_Performance_Reactjs_Browser - Fatal编程技术网

Performance React是否仅重新渲染更改的内容有利于渲染速度?

Performance React是否仅重新渲染更改的内容有利于渲染速度?,performance,reactjs,browser,Performance,Reactjs,Browser,为什么React的“只更新必要内容”功能对性能有影响 从 React仅重新渲染已更改组件的功能是否会影响浏览器渲染速度/性能 React声称,只更新需要更新的UI组件,而不是整个页面,可以提高性能。从 在内部,React使用了几种巧妙的技术来最小化更新UI所需的代价高昂的DOM操作的数量。对于许多应用程序,使用React将获得快速的用户界面,而无需进行大量专门的性能优化工作 在应用程序的更新/绘制循环中,整个屏幕不需要重新绘制吗?如果浏览器必须在每一帧重画所有内容,那么它如何从只渲染(重画?)

为什么React的“只更新必要内容”功能对性能有影响 从

React仅重新渲染已更改组件的功能是否会影响浏览器渲染速度/性能

React声称,只更新需要更新的UI组件,而不是整个页面,可以提高性能。从

在内部,React使用了几种巧妙的技术来最小化更新UI所需的代价高昂的DOM操作的数量。对于许多应用程序,使用React将获得快速的用户界面,而无需进行大量专门的性能优化工作

在应用程序的更新/绘制循环中,整个屏幕不需要重新绘制吗?如果浏览器必须在每一帧重画所有内容,那么它如何从只渲染(重画?)多个元素中的一个元素中获益?浏览器有一个帧速率(),那么帧速率如何与“只更新必要的内容”相协调呢

我看不出仅更新浏览器中的一个元素如何影响浏览器的绘制。React的javascript对象表示在实际推动渲染之前可能很快,但是如果React只是渲染与实际DOM的差异,那么这对性能有什么帮助呢

一个较低层次的问题可能是:当不重新绘制/回流布局时,浏览器如何节省计算?它不是必须画出每一帧吗

我提到了这些其他问题,这些问题都是热门话题,但并没有专门针对我的问题:


    • 你自己在这里引用了答案:

      在内部,React使用了几种巧妙的技术来最小化 更新UI所需的代价高昂的DOM操作数。对许多人来说 使用React的应用程序将提供快速的用户界面,而无需 做了大量工作专门优化性能


      React本身并不关心优化底层问题,比如页面如何重新绘制(这可能由操作系统本身处理),而是如何有效地使用DOM。众所周知,执行的DOM操作越多,总体性能就越差。React只会将这些DOM操作最小化。

      “绘制整面墙还是重新绘制墙的一部分”哪一个更省时、更好?@MayankShukla在实际的宏观人类世界中,显然是绘制墙的一部分。但是它在浏览器中是如何工作的呢?如果你愿意的话,我对一个低级的解释感兴趣。从高层次的角度来看,这是有意义的,但我想知道,如果浏览器最终每一帧都重新绘制一个页面,那么它不是重新呈现DOM吗?换句话说,如果我有10个像素,我仍然必须以60fps的速度重新绘制它们,不管它们是否从蓝色变为红色?DOM和屏幕之间是否有我遗漏的步骤?是的。DOM操作本身可能很慢。更少/更高效的DOM操作==更快。屏幕重画与用户land library的工作内容是正交的。谢谢@blockhead,我认为你是对的,在React的上下文中构建这个问题意味着你的答案是最好的(即使你没有参与DOM操作的异步批处理,但在高级别上你的答案是正确的)。我想在这一点上,我剩下的问题与React无关。作为一个高级框架,React最小化DOM操作是这个抽象级别的答案。关于浏览器在较低级别的工作方式,我将单独探讨。