React Native 是否对 ios 和 android 使用相同的代码,或者两个平台代码应该单独编写?

Do react native uses same code for ios and android or both platform code should be written separately?

您好,我在使用 Ionic Framework 和其他一些框架开发 Cordova 方面经验丰富。就个人而言,我对 Ionic 的性能不满意,所以我打算从 Ionic 切换到 React Native。

我只想在切换之前了解一些事情。在 Cordova 项目中,当您为 android 编写应用程序时,相同的代码将用于 ios 和 windows。所以它节省了大量的代码编写。您只需使用一行命令添加平台。但是我对 React 不太确定。

在 React Native 中会发生同样的事情吗? Android 和 Ios 在不同的平台上使用相同的代码,或者我们必须为另一个平台编写所有代码,或者部分代码是共享的?

Ionic 框架还带有许多组件和预构建的 UI。 React Native 也提供 UI 和组件吗?

我应该先学习 React js 来开始 React Native 还是我可以一起学习 React Native 和 React Js?

Web 平台可以使用 React Native 代码吗?

那么,让我们从React Native的口号开始吧"Learn once, write anywhere"。 这几乎回答了你的第一个问题。您必须为 android 应用和 iOS 应用编写代码。这是因为 android 和 iOS 具有不同的本机组件。 您可以重用您的一些代码,例如逻辑、如何分发数据(最多)等,但您必须调整它以与 android 和 iOS.[= 的本机组件一起使用。 26=] 编辑:这是以前的做法,但现在已经过时了,因为你现在只需要写一次

第二个问题。 React Native 使您能够利用许多众所周知的组件。如果它不在 Facebook 已经发布的内容中,社区也会启用不同的其他组件。 如果您出于某种原因想要一些没有人为其创建端口的东西,您将需要进行一些本机编程以启用这样的组件。

第三个问题。最好的当然是先学习 React,但是你可以在编写 React Native 代码的同时轻松学习 React。 React Native Playground is a nice place to play around with React Native. EDIT: RN Playground is no longer active, but there are other places to play with RN like Expo. 同样,这取决于您喜欢如何学习新的框架和语言。

第四题。不,你不能将 React Native 代码用作 Web 应用程序。这是因为您的 React Native 应用程序将使用本机组件。在 iOS 中,您使用 <View /><div /> 相同(差不多)。 这并不意味着如果您想之后创建 Web 应用程序,您就不会空手而归。您可以使用部分布局并重新编写它们以在网络上工作。比如将视图翻译成 div,将图像翻译成 img 等

gl