为啥 ReactNative 的性能比 WebView 好?如果他们使用相同的 Javascript Engine V8?

Posted

技术标签:

【中文标题】为啥 ReactNative 的性能比 WebView 好?如果他们使用相同的 Javascript Engine V8?【英文标题】:Why ReactNative has better performance than WebView? If they use same Javascript Engine V8?为什么 ReactNative 的性能比 WebView 好?如果他们使用相同的 Javascript Engine V8? 【发布时间】:2021-12-17 13:50:45 【问题描述】:

android Native中,我们使用skia。 WebView 使用skia。如果 React Native 使用 v8 引擎,webview 使用 v8 引擎。 ReactNative 和 WebView 在性能上有什么区别?

【问题讨论】:

【参考方案1】:
    React Native 渲染实际上是由原生视图通过桥执行的。 虚拟 DOM 为 React 提供了更好的性能。

【讨论】:

但是你可以在 Web 开发中使用 React。然后你就可以拥有虚拟dom了。为什么原生渲染比 WebView 更好。图层下的渲染是一样的。 最重要的原因是,React Native 将虚拟 DOM 转换为原生组件,而 React Web 应用程序只是将其转换为真实 DOM。在 React Native 中,渲染的事情都是由原生组件完成的。我们只是使用 React 来简化 UI 的编程。 为什么 Native 组件比 Web 组件快。它们都使用 opengl 进行渲染。如果布局是问题。但是网络历史悠久,为什么他们不喜欢它。【参考方案2】:

在 React-Native 中,您编写 javascript。 Javascript 与原生组件(Android 上的 Java、ios 上的 Objective C、Windows 上的 C#)进行通信。

而 WebView 只是在应用程序中显示网页的一种方式。它加载在给定屏幕尺寸中提供的 URL 的内容。内容不与本机组件通信,因此不会为您提供本机移动应用程序的外观。

【讨论】:

以上是关于为啥 ReactNative 的性能比 WebView 好?如果他们使用相同的 Javascript Engine V8?的主要内容,如果未能解决你的问题,请参考以下文章

为啥交叉验证的性能比测试差?

Electron:为啥 BrowserView 的性能比 Webview 好?

为啥 OpenCV Gpu 模块的性能比 VisionWorks 快?

为啥我看到 WCF 的性能比 Remoting 慢?

为啥 Mongodb 在 Linux 上的性能比在 Windows 上更好?

为啥 System.nanoTime() 比 System.currentTimeMillis() 慢(在性能上)?