React Native Eject解释

问题描述 投票:27回答:2

我在一小时前开始阅读关于ReactNative的内容并正在阅读这个git自述文件https://github.com/react-community/create-react-native-app/blob/master/react-native-scripts/template/README.md

接下来我用Google搜索并发现这个链接似乎在解释它但不是我在网上的新手,反应或反应原生的https://github.com/react-community/create-react-native-app/blob/master/EJECTING.md

有人可以向我解释,好像我2岁那样是什么意思?我一直听到“被驱逐的项目”一词,但我无法绕过它。

react-native
2个回答
47
投票

摘要

如果您使用create-react-native-app MyApp创建了一个应用程序,则弹出您的应用程序会使您的应用程序与使用react-native init MyApp创建项目时的应用程序相同

又名

create-react-native-app MyApp>更改app>弹出应用程序

大致相当于

react-native init MyApp>对应用程序进行更改

更多细节

create-react-native-app MyAppreact-native init MyApp有什么区别?

快速启动与全面开发

create-react-native-app背后的理念是:

  • 最小的“Hello World世界时间”:创建React Native App应该将尝试构建移动应用程序所需的设置时间减少到绝对最小值,理想情况下与React Web开发相当(特别是与Create React App一样)。
  • 在您的设备上进行开发:当您想要测试应用程序的感知和响应输入时,应该很容易在物理设备上进行开发。
  • 一个构建工具:如果您只是想开始使用React Native,则不需要安装Xcode,Android Studio,NDK或使用环境变量。
  • 无锁定:如果您需要编写自定义本机代码或修改应用程序的构建方式,则可以始终“弹出”到您自己的构建设置。

从本质上讲,create-react-native-app可让您快速启动并运行,而无需执行大量(或任何)配置。为了做到这一点,它隐藏了很多细节。

如果您想创建一个认真的应用程序,您需要设置一个真正的开发环境。您可以通过运行react-native init <project-name>从头开始执行此操作。如果您使用create-react-native-app开始使用react本机项目,则可以通过“弹出”您的应用来到达同一个位置

有关React Native入门的官方文档中的更多详细信息可以在here找到。


2
投票

我的理解是,当您运行“create-react-native-app”(或“expo init”)时,您基本上是在React Native之上添加Expo库。

我认为使用Expo的主要原因是让您的应用程序快速启动和运行。我认为弹出的主要原因是最终您可能需要使用本机代码进行更复杂的自定义并需要更多控制等。以下是对Expo和React Native CLI的更好解释,以引导您的应用:

https://levelup.gitconnected.com/expo-vs-react-native-cli-a-guide-to-bootstrapping-new-react-native-apps-6f0fcafee58f

当您弹出时,您将返回到相同的状态,就好像您没有使用Expo设置您的应用程序一样(将生成本机ios / android项目等)

以下是一些帮助我理解的其他链接:http://www.reactnativeexpress.com/environment

https://docs.expo.io/versions/latest/expokit/eject/

© www.soinside.com 2019 - 2024. All rights reserved.