【问题标题】:Can I develop web application using React Native?我可以使用 React Native 开发 Web 应用程序吗?
【发布时间】:2021-08-27 18:12:19
【问题描述】:
我没有使用 React Native 进行任何练习,因此我将其视为下一个需要学习的技术。
我知道它是原生 Android 和 iOS 应用程序的替代品,但我想知道,使用 React Native 开发的应用程序同时也可以作为 Web 应用程序工作吗?
我找到了React Native Web,所以我想知道:用 React Native 编写的相同代码是否可以在 Web 上运行,或者需要进行一些额外的修改(如果是,它们有多复杂)?
【问题讨论】:
标签:
reactjs
react-native
react-native-web
【解决方案1】:
并非所有使用 React-Native 为移动设备编写的内容都可以在 Web 模式下运行。这不仅是因为 React Native Web 更新,还因为 Web API 不等同于 iOS/Android API - 有些功能根本无法使用。这里是React Native Web的compatibility list,在官网。
这里还需要考虑同时缺乏对 Web 和移动设备的支持。以react-native-maps 为例:它是在适用于 Android 和 iOS 的 Google Map SDK 以及 iOS 中的 MapKit 之上编写的。它完全依赖于移动生态系统,因此如果您希望您的地图功能在 Web 中工作,您必须为 Web 实施单独的解决方案。
总体而言,您需要了解每个项目要求的相关功能/库是否在网络和移动设备中都受支持,如果不支持,您是否有足够的时间和资源来实现缺失的部分。如果答案是否定的,那么你应该分开你的代码库来处理网络和移动。
【解决方案2】:
看起来this library 已经被 Twitter 和 Uber 等大公司使用,所以我想说它确实运作良好。
如果您开始为 Android、iOS 和 Web 构建应用程序,我认为这是一个可行的选择。这意味着您必须定期测试您对应用程序的添加是否适用于每个平台,并在某些东西无法开箱即用时找到解决方法。迁移现有的 React Native 项目以包含 React Native Web 可能不会那么简单。
使用 React Native,您可以使用一个代码库构建您的应用,但这并不意味着您在某些情况下不必编写特定于平台的代码。
Flutter 还支持为 Linux、macOS 和 Windows 之外的这些平台开发应用程序。 Flutter Web 应用程序仍处于早期阶段,因此它可能不如 React Native Web 稳定。我认为如果你只想要来自同一个代码库的 Android、iOS 和 Web 应用程序,目前 React Native Web 是一个更好的选择。
【解决方案3】:
作为开发人员,您应该始终相信,无论是编码还是自行分配整个项目,没有什么是不可能的。根据市场的说法,React-Native-Web 是 React 和 React Native 要求最高的升级版。
是的,与简单的 Web 相比,React Native Web 很难找到复杂的东西,因为支持者较少。