React Native 与 CRNA

React Native vs CRNA

我想从 React Native 应用程序开发开始,需要帮助来决定我应该走哪条路。

主要问题是:我应该使用 React Native 还是创建 React Native 应用程序?

据我了解,CRNA 确实是使用 expo 客户端和工具的本机反应,使用起来更舒适(不需要开发帐户等)

我可以看到使用 CRNA 相对于 React Native 的优势(不需要设置依赖项,开始开发的时间更快,不需要 iPhone 开发帐户或 xcode+ android组合等)

但是,由于并非所有本机库都包含在内,我认为自己无论如何都需要在以后导出我的应用程序,并像以前一样继续使用 xcode 和 Android Studio .

因此,如果 CRNA 只是开始一切的好方法,那么我会立即选择 vanilla React Native,因为我认为临时解决方案根本没有意义。

另外,也许你可以纠正我的错误,我不喜欢在我的应用程序之上再添加一个包装器的想法,除非有一些我错过的更重要的优势。

那么您能分享一下您在这方面的经验吗?如果你以前用react native开发过app,你走了哪条路,以后会走哪条路? React Native、CRNA 还是 React Native 和 expo 环境?

我认为 create-react-native-app 是一个很好的开始方式,这样您就可以专注于 React Native 的 React 部分,尤其是在您不熟悉 React 的情况下。当你准备好用 native 做事时,你可以简单地用 npm run eject

弹出

当我去年年底用react native开始一个新项目时,没有create-react-native-app,我先评估了expo。我不喜欢它,因为没有简单的原生集成,除非你在我确定我们需要原生集成时弹出。因此我选择了 vanilla react native。此外,我已经有过 Web 上的 React 以及 iOS 和 Android 本地开发的经验。

你好,我也会分享我在这个话题上的一些经验。

由于我有前端背景并且不熟悉 XCode 或 Android Studio,所以我决定从 CRNA 开始我的原生应用程序开发。

事实上,仅使用一个文本编辑器,完全使用 javascript 并利用内置的 expo SDK 组件,我很快就能实现并发布到 Play Store a fairly simple app。 我觉得真的很棒 :)

然而,在发布该应用程序后,我意识到存在一些无法与类似竞争对手 Java 应用程序竞争的缺陷:

最大的 IMO 是使用 exp 生成的 apk 的大小 服务。 对于只有 3 个屏幕且业务逻辑不多的应用程序,安装后 25 MB 和大约 60 MB 确实很多。 According to expo devs 更复杂的应用程序的大小将大致相同或略大,因为大部分大小是本机依赖项,​​而不是实际的 javascript 端。 但这仍然是一个大问题,我可能不得不 eject 应用程序来优化构建大小

所以总的来说,CRNA 是一种很好的快速启动方式,但在将应用程序发布给用户之前,您将无法避免设置自定义构建和所有依赖项,例如 Android工作室

TLDR

如果您通过 create_react_native_app myproject

创建项目

然后它包含 expo 设置(不推荐)

如果您通过 react-native myproject

创建项目

然后是普通的 react-native(推荐用于小型、中型、大型项目)

注意 : 在终端use this link

中使用react-native命令

我想分享我的应用程序开发经验。由于我是 React 的新手,所以我从 CRNA 开始,它进行得很顺利。 Expo 确实提供了许多功能,例如推送通知、动画(Airbnb 推荐的 Lottie)以及让您高枕无忧,您可以随时弹出您的应用程序,以便在应用程序中使用本机库。最好的部分是您不必重写任何代码,所有 expo 独有的功能也可以正常工作。 因此 CRNA(尽可能多地使用)+ 弹出(当你需要本地库时)= sweet spot .