React 渲染模型和原生工具包有什么区别

What's the difference between the React rendering model and native toolkits

我应该澄清一下,我对渲染模型特别感兴趣,据我所知,React 仅重新渲染已更改的内容,像 GTK 和 QT 这样的原生工具包不会这样做吗?他们做什么呢?

本机工具包也只重新呈现已更改的内容,但它发生的方式有点不同。

本机工具包渲染包括在屏幕上逐字绘制像素。在 React 中,渲染包括操纵 DOM,随后浏览器将其渲染到页面中,然后该页面的像素由浏览器编写的本机工具包绘制到屏幕上。所以本机工具包有更多的自由来优化每个级别的东西,而 React 只控制 DOM 级别。

在 GTK 中,粗略地说,UI 小部件能够在知道某些内容已更改并需要重新渲染时 "invalidate" 其像素区域。在下一次绘制更新​​期间,无效区域将根据新状态重新绘制。该工具包可以将绘画更新之间发生的多个失效合并为一个,例如,为了优化事情。