" react-native"之间的技术差异是什么?和#34; Apache Cordova"?
我已经和Cordova合作了一段时间,它的工作方式是,它创建了一个webview(无头浏览器)并使用各种API访问在其中运行应用程序。我一直想知道" react-native"是否也是如此。 "反应原生"还创建webview?或者它将javascript代码转换为本机代码?
如果它创建了一个" webview"像Cordova,那么" Cordova + React" app和a" react-native" app(不包括react-native提供的本机组件)?
我知道这里已经有了这类问题的答案:Phone gap vs React Native。但我的问题有点不同。谢谢。
答案 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应用程序转换为跨平台的应用程序,但它的代价是缺乏本机感觉和性能降低。
我认为这个答案对您很有帮助。谢谢。