React Native使用什么来覆盖iOS和Android? Cordova使用WebView有效地显示本机容器内的网页; React Native是否使用相同的方法?如果没有,它采用什么方法?
答案 0 :(得分:13)
正如您注意到React Native不是基于Cordova。它不是一个看起来像应用程序铲入WebView的网站。
React Native使用JavaScript运行时,但UI不是HTML,也不使用WebView。您可以使用JSX和React Native特定组件来定义UI。
它提供了本机级别的性能和外观,但是必须为iOS和Android单独配置一些UI部件。例如,工具栏完全不同,但两个操作系统的TextInput可以相同。
答案 1 :(得分:8)
在iOS模拟器和设备上,Android模拟器和设备React Native使用 JavaScriptCore ,它是为Safari提供动力的JavaScript引擎。 Source
答案 2 :(得分:0)
要运行Javascript代码
React Native在Android / iOS模拟器和设备上使用JavaScriptCore(支持Safari的JavaScript引擎)。
对于Android,React Native将JavaScriptCore与应用程序捆绑在一起。
对于iOS,React Native使用iOS平台提供的JavaScriptCore。
与Android / iOS通信
使用反应本机桥(C ++ / Java桥)。它负责本机线程与Javascript线程之间的通信。
在大多数情况下,开发人员会使用Javascript编写整个React Native应用程序。要运行该应用程序,请通过CLI发出以下命令之一-
react-native run-ios
或react-native run-android
。此时,React Native CLI将产生一个节点打包器/捆绑器,该打包器/捆绑器会将JS代码捆绑到单个main.bundle.js
文件中。打包程序可以被认为类似于Webpack。现在,每当启动React Native应用程序时,要加载的第一项就是本机入口点。本机线程产生运行捆绑的JS代码的JS VM线程。 JS代码具有应用程序的所有业务逻辑。现在,本机线程通过RN Bridge发送消息以启动JS应用程序。现在,生成的Javascript线程开始通过RN Bridge向本地线程发出指令。这些说明包括要加载的视图,要从硬件检索的信息等。 Source