我最近开始做出反应原生和跟随教程的指南 2选项一是通过“create-react-native-app myproject”创建项目,另一个是“react-native init myproject”。
第一个(create-react-native-app)只生成app.js而另一个生成index.android.js和index.ios.js ..
我知道他们在做同样的工作,但这里有真正的不同之处吗?我应该选择哪一个开始,哪一个更有用?
答案 0 :(得分:20)
create-react-native-app
(“CRNA”)CLI基于Expo构建项目模板,native APIs是第三方工具包,允许您使用仅JavaScript编写跨平台的React Native应用程序< / em>,并提供更流畅的工作流程,以使应用程序在真实设备上运行。此外,Expo可以访问大量detach,您通常需要库或自定义本机代码。
世博会很棒,在一个理想的世界里,它是大多数应用程序开发者可能更喜欢使用的东西,但是Expo的架构设置了一个不幸的限制:你不能编写自定义本机模块,或者集成依赖于自定义的第三方库未构建为Expo的本机代码。这意味着您只能访问React Native和Expo提供的本机功能,并且无法轻松扩展它。
相比之下,react-native
CLI的init
命令创建了一个简单的React Native应用程序模板,您可以修改本机iOS和Android项目。这种方法的缺点是您需要在计算机上设置原生iOS和Android构建链,开始开发和部署应用程序会非常麻烦。
幸运的是,Expo提供了一种通过其原生app shell handy guide CRNA应用程序的方法。这会将CRNA项目转换为类似于react-native init
创建的普通项目,但可以访问所有Expo SDK功能。
在实践中,大多数初学者和新项目的最佳方法是从create-react-native-app
开始,并评估您是否需要稍后分离。 Expo提供{{3}帮助做出决定。