gpt4 book ai didi

javascript - 了解 React Native 跨平台

转载 作者:搜寻专家 更新时间:2023-11-01 04:23:15 25 4
gpt4 key购买 nike

我想构建一个在 Web、iOS 和 Android 上运行的应用程序。

我刚刚按照教程使用 React Native 构建了一个 iOS 应用程序。我已在我的手机上成功运行该应用程序。

我最初的理解是“一次构建,到处部署”。我很快意识到,在我编辑 index.ios.js 文件后情况就不同了。

此外,我很清楚我不能只是将源代码从 index.ios.js 复制到 index.android.js,因为许多导入和 API 是特定于平台的。但是,我知道除此之外大部分代码库都是平台模糊的。

实现我想要的结果的合适方法是什么?

  • 为一个平台构建一个应用程序,比如说 index.ios.js
  • 然后复制它并更改平台特定位以适应index.android.js
  • 是否也针对传统的“桌面浏览器”?这应该在 React 中单独完成,而不是 React-native?

最佳答案

我发现,一个设计良好的项目可以在 iOS 和 Android 之间实现相对较高程度的代码共享 - 在某些情况下达到 85-95% - 这取决于应用程序的复杂程度。 .ios.android扩展之所以存在,是因为能够专门针对每个平台很有用——在创建模块化组件时,有时每个操作系统都会产生不同的挑战,因此您必须重新考虑架构。一个例子是 <Picker>组件,它创建一个 UIPickerView在 iOS 上,但是模态 Picker和 Android 上的标签 - 两者的工作方式略有不同。但总的来说,情况并非如此,至少根据我的经验。

作为 index.js文件是入口点,因此它充当许多应用程序的路由器,这意味着您希望它在每个平台上都相同 - 所以您实际上可以只有一个 index.js适用于所有平台。有时可能需要进行特定于平台的初始化和全局分配,这将使单独的方法变得有用。

Web-wise 目前没有太多交叉(尽管希望这会改变)。 React Native 利用 React 的强大功能,同时运行在由 iOS 和 Android 团队设计的原生组件之上,并且移动和 Web 之间的差异相当广泛。已经说过有一些组件,例如 React Swipeable Views它可以跨网络和本地工作,这是非常有前途的。但目前两者是相当独立的 - 一个位于 DOM 上,另一个位于原生 SDK 上,尽管两者共享几乎所有其他内容,这意味着跨平台的技能转移很好。

关于javascript - 了解 React Native 跨平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com