基本上,你需要编写Javascript代码。它通过所谓的“桥接”与本地组件通信(Android上的Java,iOS上的Objective C,Windows上的C#)。
如果你感觉这种通信会拖慢速度,你可以选择将Javascript功能分别实现在Java、Objective C或者C#中,以使其完全运行在本地。在这种情况下,你编写的是纯本地代码,不存在Javascript到本地代码的编译过程。
这样做会为性能而牺牲兼容性。通常情况下不需要这么做。
代码仍然保持JavaScript原生代码并未转换成其他格式。混合应用程序在本地容器应用程序内运行,该应用程序调用JavaScript运行时引擎来执行JavaScript代码。希望这能澄清问题。
我看到的最好解释是 -
00:00 - 03:55
https://www.youtube.com/watch?v=6ZnfsJ6mM5c&t=1228s
“在编译后,React Native应用程序中所有UI(按钮,文本等)都将被编译为本地代码(Java或Objective C),而JavaScript部分将保持不变。”
完整解释请见-
08:06-14:10
React Native
React -> JavaScriptCore -> 原生代码 -> "你所看到的"
混合应用程序
JavaScript -> 原生 WebView 封装器 -> "你所看到的"
React Native作为一个包装器。例如:如果您想在布局中放置一个按钮,您只需添加一个button
标签。然后,您可以使用UI模块中的特定API在Android上呈现它。您可以轻松地创建自定义本机模块以在React Native项目中使用。但是,原生编写的代码通常更快。