Expo CLI和React Native CLI有什么区别?

时间:2019-02-25 08:46:17

标签: react-native expo react-native-cli

  

React Native提供了两种创建项目的方法。

第一

npm install -g expo-cli

第二:

npm install -g react-native-cli

那么它们之间有什么不同?如果我们创建react native应用应该使用什么?

1 个答案:

答案 0 :(得分:3)

反应本机初始化:

优势:

  • 您可以添加用Java / Objective-C编写的本机模块(可能是唯一但最强大的模块)

缺点:

  • 需要Android Studio和XCode来运行项目
  • 如果没有Mac,就无法为iOS开发
  • 必须通过USB连接设备才能使用它进行测试
  • 字体需要在XCode中手动导入
  • 如果您要共享应用程序,则需要发送整个.apk / .ipa文件
  • 不提供现成的JS API,例如推送通知,资产管理器,它们需要手动安装并与npm链接,例如
  • 正确设置工作项目(包括设备配置)非常复杂,可能会花费一些时间

博览会:

优势:

  • 设置项目很容易,只需几分钟即可完成
  • 您(和其他人)可以在进行项目时打开项目
  • 共享应用程序很容易(通过QR码或链接),您不必发送整个.apk或.ipa文件
  • 无需构建即可运行该应用
  • 在标准项目中集成了一些基本库(Push Notifications,Asset Manager等)
  • 您可以将其弹出到ExpoKit并继续使用某些Expo功能(而不是全部功能)集成本机代码
  • Expo可以构建.apk和.ipa文件(可以通过Expo分发到商店)

缺点:

  • 您无法添加本机模块(某些情况下可能会改变游戏规则)
  • 您不能使用在Objective-C / Java中使用本机代码的库
  • 标准的Hello World应用程序约为25MB(由于集成了库)
  • 如果要使用:FaceDetector,ARKit o Payments,则需要将其弹出到ExpoKit
  • 将其弹出到ExpoKit时需要权衡Expo的功能,例如您无法通过QR码分享
  • 弹出ExpoExp时,您只能使用ExpoKit当时支持的react native版本。
  • ExpoKit(带有本地模块)中的调试要复杂得多,因为它混合了两种语言和不同的库(不再提供正式的Expo支持)

并且您可以使用满足您的应用程序要求的任何一种