首页 文章

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

提问于
浏览
1

“React-Native”和“Apache Cordova”之间的技术差异是什么?

我一直在使用cordova并且它的工作方式是,它创建了一个webview(无头浏览器)并使用各种API访问在其中运行应用程序 . 我一直想知道“React-Native”是否也是如此 . “Ract-Native”是否也会创建webview?或者它将javascript代码转换为本机代码?

如果它创建了像cordova这样的“webview”,那么“Cordova React”应用程序和“React-Native”应用程序之间的区别是什么(不包括本机组件提供的本机组件)?

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

1 回答

  • 3

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

    React Native是为Android和iOS编写本机UI的抽象 . 您的JS代码在OS上的JS运行时中运行,但UI呈现为本机组件 . 这使它与Cordova / PhoneGap非常不同 .

    这在React Native webpage中提到:

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

    并在_1041674中进行了更详细的解释:

    由于React组件只是纯粹的,无副作用的函数,可以在任何时间点返回我们的视图的样子,因此我们永远不需要从底层渲染的视图实现中读取以便写入它 . 在浏览器环境中,React相对于DOM是非阻塞的,但React的优点在于它是抽象的而不是与DOM紧密耦合 . React可以包装任何命令式视图系统,例如iOS上的UIKit . 所以这意味着通过一些工作,我们可以使它完全相同的GitHub上的React可以为真正的原生移动应用程序提供动力 . 移动环境的唯一区别在于,我们不是在浏览器中运行React并渲染为div和span,而是在我们的应用程序内部的JavaScriptCore嵌入式实例中运行它,并渲染到更高级别的平台特定组件 .

相关问题