什么是"create-react-native-app myproject"和"react-native init myproject"之间的真正区别

TyF*_*ude 12 react-native react-native-android

我最近开始反应原生和跟随教程指南有2个选项一个是通过"create-react-native-app myproject"创建项目,另一个是"react-native init myproject".

第一个(create-react-native-app)只生成app.js而另一个生成index.android.js和index.ios.js ..

我知道他们在做同样的工作,但这里真正的不同之处是什么?我应该选择哪一个开始,哪一个更有用?

jev*_*lio 23

create-react-native-app("CRNA")CLI建立基于项目模板世博会,一个第三方工具,它允许您编写跨平台的阵营使用本地应用程序只有JavaScript,并提供了顺畅的工作流程为获得一个真正的设备上运行的应用程序.此外,Expo还提供对大量本机API的访问,您通常需要库或自定义本机代码.

世博会很棒,在理想的世界里,它是大多数应用开发者可能更喜欢使用的东西,但是Expo的架构设置了一个不幸的局限:你不能编写自定义的本机模块,或者集成依赖于自定义本机代码的第三方库.没有建成世博会.这意味着您只能访问React Native和Expo提供的本机功能,并且无法轻松扩展它.

相比之下,react-nativeCLI的init命令创建了一个简单的React Native应用程序模板,您可以修改本机iOS和Android项目.这种方法的缺点是您需要在计算机上设置本机iOS和Android构建链,并且开始开发和部署应用程序会非常麻烦.

幸运的是,Expo提供了一种从原生应用程序外壳中分离 CRNA应用程序的方法.这会将CRNA项目转换为类似于由其创建的普通项目react-native init,但可以访问所有Expo SDK功能.

在实践中,大多数初学者和新项目的最佳方法是从一开始create-react-native-app,并评估您是否需要稍后分离.世博会提供了一个方便的指南,以帮助做出决定.