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

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

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

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

create-react-native-app(“CRNA”)CLI构建了一个基于 Expo的项目模板,这是一个第三方工具包,允许您仅使用JavaScript编写跨平台的React Native应用程序,并提供更顺畅的工作流程来获取应用程序在真实设备上运行此外,Expo提供了大量的 native APIs,您通常需要库或自定义本机代码.

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

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

幸运的是,Expo提供了一种从他们的原生app shell到detach CRNA应用程序的方法.这会将CRNA项目转换为类似于react-native init创建的普通项目,但可以访问所有Expo SDK功能.

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

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...