react-native 和cordova 的技术区别

IT技术 cordova reactjs react-native hybrid-mobile-app
2021-05-13 01:43:04

“react-native”和“Apache Cordova”之间的技术区别是什么?

我使用 Cordova 已经有一段时间了,它的工作方式是,它创建一个 webview(一个无头浏览器)并使用各种 API 访问在其中运行应用程序。我一直想知道“react-native”是否也是如此。“react-native”是否也会创建 webview?或者它是否将 javascript 代码转换为本机代码?

如果它创建了像 Cordova 这样的“webview”,那么“Cordova + React”应用程序和“react-native”应用程序(不包括 react-native 提供的 native-components)有什么区别?

我知道这里已经有此类问题的答案:Phone gap vs React Native但我的问题有点不同。谢谢你。

2个回答

“React-Native”是否也会创建 webview?

不。React Native 是为 Android 和 IOS 编写原生用户界面的抽象。您的 Javascript 代码在操作系统上的 Javascript 运行时中运行,但 UI 呈现为本机组件。这使它与 Cordova/PhoneGap 非常不同。

React Native 网页上提到了这一点

原生组件

借助 React Native,您可以使用标准平台组件,例如 iOS 上的 UITabBar 和 Android 上的 Drawer。这使您的应用程序与平台生态系统的其余部分具有一致的外观和感觉,并保持较高的质量标准。这些组件可以使用对应的 React 组件轻松合并到您的应用程序中,例如 TabBarIOS 和 DrawerLayoutAndroid。

并在这篇博文中进行了更详细的解释

由于 React 组件只是纯粹的、无副作用的函数,可以在任何时间点返回我们的视图的样子,我们永远不需要从我们底层渲染的视图实现中读取来写入它。在浏览器环境中,React 相对于 DOM 是非阻塞的,但 React 的美妙之处在于它是抽象的,并且与 DOM 没有紧密耦合。React 可以封装任何命令式视图系统,例如 iOS 上的 UIKit。

所以这意味着通过一些工作,我们可以使 GitHub 上完全相同的 React 能够为真正的原生移动应用程序提供支持。移动环境中的唯一区别是,我们不是在浏览器中运行 React 并渲染到 div 和 span,而是在我们的应用程序内的 JavaScriptCore 的嵌入式实例中运行它,并渲染到更高级别的特定于平台的组件。

react-native和cordova之间的区别?

1.什么是..

react-native:

React Native 基于 React(一个 JavaScript 框架)来使用 JavaScript 设计应用程序 UI。它支持 Android 和 iOS 开发混合应用程序。基本上,React Native 应用程序不像在 Cordova 中那样使用 WebViews 来呈现应用程序 UI。嵌入了 JavaScript 解释器以仅运行应用程序的 JS 代码。

cordova:

Cordova 是另一个用于设计混合应用程序的开源 JavaScript 框架。Cordova 应用程序使用 WebViews 来呈现应用程序的用户界面。Cordova 还允许开发人员使用 HTML5、JS 等最新的 Web 技术来设计适用于 Android、iOS 和 Windows 的应用程序。

2.性能..

React Native:- 使用 React Native 开发的应用程序比 Cordova 应用程序快,但比原生应用程序慢。

Cordova:- Cordova 应用程序只是 Web 视图,这使它们变得缓慢且响应速度较慢。

3.支持的平台..

React Native:- Android 和 iOS。

Cordova:- Android、iOS 和 Microsoft UWP。

4.与设备核心组件的交互..

React-Native:-React Native 将用 HTML 编写的 UI 呈现为原生组件,这使得应用程序与核心设备组件的交互速度更快。

Cordova:-与 React Native 应用程序相比,与核心设备组件的交互速度较慢。

5.成熟..

React Native:-就可用插件的数量而言,React Native 不如 Cordova 成熟。

Cordova:-Cordova 比 React Native 更稳定。

6.向后兼容..

React Native:-对旧平台的支持很少。React Native 不支持 iOS 7。

Cordova:-更好地支持旧平台。

7.便携性..

React Native:-在 React Native 中,与 Cordova 相比,代码重用更少。您几乎必须为不同的平台重新实现代码。

Cordova:- 为一个平台编写的 Apache Cordova 代码可以很容易地移植到不同的平台上,而不会有太多麻烦。

8.调试...

React Native:-React Native 应用程序的 UI 在应用程序本身中调试,JavaScript 在 Chrome 开发者控制台中调试。在调试 React Native 应用程序时,设备只需要第一次连接。之后,调试过程可以通过局域网完成。此外,React Native 应用程序的调试比 Cordova 应用程序的调试更简单、更容易。

Cordova:-在 Cordova 应用程序中,UI 和 JavaScript 在 Chrome 开发者控制台中调试。在调试 Cordova 应用程序时,您的设备需要连接到系统。

9.何时使用..

React Native:-当您想开发具有更原生感觉和更快性能的跨平台应用程序时,请使用 React Native。

Cordova:-Cordova 最适合于您想快速将 Web 应用程序转换为跨平台的情况,但它的成本是较低的原生感觉和缓慢的性能。

我认为这个答案对你很有帮助。谢谢..