【问题标题】:React Native vs CRNA [closed]React Native vs CRNA [关闭]
【发布时间】:2017-12-20 18:30:45
【问题描述】:

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

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

据我了解,CRNA 确实是使用 expo 客户端和工具进行原生反应,使用起来更舒适(无需开发帐户等)

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

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

所以,如果 CRNA 只是开始一切的好方法,那么我会立即选择原生反应,因为我认为临时解决方案没有任何意义。

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

您能分享一下您在这方面的经验吗?如果你过去开发过 React Native 的 App,你走的是哪条路,未来你会走哪条路? React Native、CRNA 还是 React Native 和 expo 环境?

【问题讨论】:

    标签: react-native create-react-app


    【解决方案1】:

    您好,我也将分享我在该主题上的一些经验。

    由于我有前端背景并且不熟悉 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 Studio

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 如何在你的应用中添加 webpack + typescript + 单元测试 + 测试覆盖率?
      • 我们不使用 webpack,只是使用 React 原生默认打包器。尽管您可以查看 github.com/callstack-io/haul 以了解将 webpack 与 React Native 结合使用。我没有使用打字稿,但我们正在为项目添加流程。我们使用 jest 进行测试,它已经与 istanbul 集成以提供良好的测试覆盖率输出。
      • 嗨,我是 React Native 的新手。我使用 create-react-native-app 创建了我的应用程序,然后使用 expo 构建了我的 apk,但是 apk 的大小很大,25mb+ 我的问题是 create-react-native-app 是否自动包含 expo 模块?
      • @RudolphOpperman 嗨,你是对的。 create-react-native-app 具有非常大的整个内置 expo SDK。如果包大小是一个问题,那么你一定要弹出。
      • @hyb175 我在弹出时遇到了一些困难,而且它一团糟导致我的版本控制(local-git)在失败后没有删除所有文件夹。我只想知道什么时候弹出我还能使用我添加的库,例如 native-base 和 Stack navigator?
      【解决方案3】:

      TLDR

      如果您创建项目 create_react_native_app myproject

      那么它包含expo 设置(不推荐)

      如果您创建项目 react-native myproject

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

      注意:在终端use this link使用react-native命令

      【讨论】:

        【解决方案4】:

        我想分享我的应用开发经验。由于我是 react 新手,所以我从 CRNA 开始,并且进展顺利。 Expo 确实提供了许多功能,例如推送通知、动画(Airbnb 推荐 Lottie),并且您可以随时使用原生库与 app 一起弹出应用程序,让您高枕无忧。最好的部分是您不必重写任何代码,并且所有 expo 专有功能都可以正常工作。 因此 CRNA(尽可能多地使用)+eject(当你需要本地库时)= 最佳位置。

        【讨论】:

          猜你喜欢
          • 2016-08-26
          • 1970-01-01
          • 2017-09-04
          • 2023-03-03
          • 1970-01-01
          • 2017-10-24
          • 2015-12-28
          • 1970-01-01
          • 2018-06-25
          相关资源
          最近更新 更多