反应原生和科尔多瓦之间的技术差异

时间:2016-06-30 16:38:29

标签: cordova reactjs react-native hybrid-mobile-app

" react-native"之间的技术差异是什么?和#34; Apache Cordova"?

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

如果它创建了一个" webview"像Cordova,那么" Cordova + React" app和a" react-native" app(不包括react-native提供的本机组件)?

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

2 个答案:

答案 0 :(得分:4)

  

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

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

React Native webpage上提到了这一点:

  

原生组件

     

使用React Native,您可以使用标准平台   iOS上的UITabBar和Android上的Drawer等组件。这给了   您的应用程序与平台的其余部分保持一致的外观   生态系统,保持高质量标准。这些组件很容易   使用他们的React组件对应物整合到您的应用中,   例如TabBarIOS和DrawerLayoutAndroid。

this blog post中详细解释:

  

由于React组件只是纯粹的,无副作用的功能   在任何时间点返回我们的观点,我们永远不需要   从我们的底层渲染视图实现中读取   写信给它。在浏览器环境中,React是非阻塞的   尊重DOM,但React的美妙之处在于它是抽象的   没有紧密耦合到DOM。 React可以包装任何命令视图   系统,例如iOS上的UIKit。

     

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

答案 1 :(得分:1)

本机反应与科尔多瓦反应之间的区别?

1。什么是..

反应原生:

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

科尔多瓦:

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

2.Performance ..

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

科尔多瓦:- 科尔多瓦应用程序只是Webview,它们使它们变慢且响应速度较慢。

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.Debugging ..

React Native:-React Native应用程序的UI在应用程序本身中进行了调试,而JavaScript在Chrome开发者控制台中进行了调试。 在调试React本机应用程序时,仅需要第一次连接设备。此后,可以通过LAN完成调试过程。而且,React Native应用程序的调试比Cordova应用程序的调试更容易。

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

9。何时使用..

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

Cordova:-Cordova最适合希望快速将Web应用程序转换为跨平台的应用程序,但它的代价是缺乏本机感觉和性能降低。

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