64

React Native 提供了两种创建 Project 的方式。

第一的:

npm install -g expo-cli

第二:

npm install -g react-native-cli

那么它们之间有什么不同,如果我们创建反应原生应用程序应该使用什么?

4

1 回答 1

171

反应原生初始化:

好处:

  • 您可以添加用 Java/Objective-C 编写的本机模块(可能是最强大的功能)
  • 您将可以控制构建。

缺点:

  • 需要 Android Studio 和 XCode 来运行项目
  • 没有 Mac 就无法为 iOS 开发
  • 设备必须通过 USB 连接才能用于测试
  • 字体需要在 XCode 中手动导入
  • 如果您想共享应用程序,您需要发送整个 .apk / .ipa 文件
  • 不提供开箱即用的 JS API,例如 Push-Notifications、Asset Manager,它们需要手动安装并与 npm 链接,例如
  • 正确设置工作项目(包括设备配置)相当复杂,可能需要时间

世博会:

好处:

  • 建立一个项目很容易,可以在几分钟内完成
  • 您(和其他人)可以在处理项目时打开项目
  • 共享应用程序很容易(通过二维码或链接),您不必发送整个 .apk 或 .ipa 文件
  • 运行应用程序无需构建
  • 在标准项目中集成一些基本库(推送通知、资产管理器等)
  • 您可以将其弹出到 ExpoKit 并继续使用某些 Expo 功能集成本机代码,但不是全部
  • Expo 可以构建 .apk 和 .ipa 文件(可以通过 Expo 分发到商店)

缺点:

  • 您不能添加本机模块(对于某些人来说可能会改变游戏规则)
  • 您不能在 Objective-C/Java 中使用使用本机代码的库
  • 标准的 Hello World 应用程序大约 25MB 大(因为集成了库)
  • 如果您想使用:FaceDetector、ARKit o Payments 您需要将其弹出到 ExpoKit
  • 将其弹出到 ExpoKit 会权衡 Expo 的功能,例如您无法通过 QR 码共享
  • 弹出到 ExpoKit 时,您仅限于当时 ExpoKit 支持的 react native 版本
  • ExpoKit 中的调试(使用本机模块)要复杂得多,因为它混合了两种语言和不同的库(不再支持 Expo 官方)

您可以使用任何满足您的应用程序要求的

于 2019-02-25T08:51:28.473 回答