问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Expo框架开发React Native项目指南

创作时间:
作者:
@小白创作中心

Expo框架开发React Native项目指南

引用
CSDN
1.
https://blog.csdn.net/s686ttttt/article/details/146439352

使用 Expo 框架开发 React Native 项目可以显著简化开发流程,尤其适合快速原型开发和跨平台应用构建。

一、Expo 的核心优势

  1. 零配置开发
  • 无需手动配置 Android/iOS 原生环境,Expo CLI 自动处理打包、依赖和构建。
  1. 丰富的内置功能
  • 集成常用 API(如相机、地理位置、通知、传感器等),无需额外安装原生模块。
  1. 快速迭代
  • 支持热重载(Hot Reloading)、Over-the-Air (OTA) 更新,可通过 Expo Go App 实时预览。
  1. 跨平台兼容性
  • 一套代码适配 iOS、Android 和 Web(通过 Expo Web 支持)。

二、开发环境搭建

  1. 安装依赖

npm install -g expo-cli  # 全局安装 Expo CLI  

或者


npx create-expo-app@latest  
  • 需 Node.js 版本 ≥ 16,并确保已安装 Git。
  1. 创建新项目

expo init MyProject  # 选择模板(如 "blank" 或 "tabs")
cd MyProject  
  1. 启动开发服务器

expo start  # 启动 Metro Bundler,生成二维码  
  • 用手机安装 Expo Go App(需要在谷歌商店中自己下载,要是没有谷歌商店运行环境的,可以在自己编辑器上自己使用安卓的运行环境(看第四标题),ios作者也不知道........),扫码即可实时调试。

三、核心开发流程

  1. 使用 Expo SDK 组件
    Expo 提供大量跨平台组件,例如:

import { Camera, MapView, Notifications } from 'expo';
// 示例:调用摄像头
const takePhoto = async () => {
  const { status } = await Camera.requestCameraPermissionsAsync();
  if (status === 'granted') {
    const photo = await cameraRef.current.takePictureAsync();
  }
};  
  1. 调试工具
  • Expo DevTools:浏览器中查看日志、性能分析。
  • React Native Debugger:独立调试工具,支持 Redux 审查。
  1. 依赖管理
  • 使用
    expo install [package]
    安装依赖,确保版本与当前 Expo SDK 兼容。

四、构建与发布

  1. 本地预览构建

expo run:android  # 或 expo run:ios  
  • 需安装对应平台的开发工具(如 Xcode、Android Studio)。
  1. 云构建(EAS Build)
  • 通过 Expo Application Services (EAS) 生成 IPA/APK 文件:

eas build --platform android  # 或 ios  
  • 需注册 Expo 账号并配置
    eas.json
  1. 发布 OTA 更新

expo publish  # 将 JS 代码更新推送到所有用户  

五、处理原生模块(需脱离 Expo 托管)

  1. 使用 EAS 扩展能力
  • 通过
    eas config
    生成
    eas.json
    ,支持自定义原生配置,无需
    eject
  1. Eject(慎用)

expo eject  # 生成原生代码,转为 "Bare Workflow"  
  • 会失去部分 Expo 托管服务优势,但可集成任意原生模块。

六、常见问题与解决方案

  1. 兼容性问题
  • 检查 Expo SDK 版本是否支持所需 API(Expo 文档)。
  1. 性能优化
  • 对于复杂动画/列表,使用
    react-native-reanimated

    FlashList
    (Expo 内置推荐库)。
  1. 权限处理
  • 所有敏感权限(如相机、定位)需在
    app.json
    中声明:

{
  "expo": {
    "android": { "permissions": ["CAMERA"] }
  }
}  

七、Expo vs. 原生 React Native

场景 推荐方案
快速原型开发、简单应用 Expo Managed Workflow
深度定制原生功能 Bare Workflow 或 EAS Build

八、学习资源

  1. Expo 官方文档
  2. Snack 在线编辑器(实时代码测试)
  3. 社区论坛:Expo GitHub Discussions

九、项目组成文件作用 开发项目

这是作者自己写过的一个项目(就有两个路由.....),对其中初始封装组件的那些文件已经做出了删除。只留有了自己能使用到的东西。
App文件夹下是我们最主要的编辑文件夹,在其中完成路由和页面。
这就是我们在创建项目的时候的初始文件,有着他们自己封装的组件和一些ui样式等等。
总之我们在开发react-native项目之前我们还是要了解这些文件的组成部分和使用的情况。在RN项目中,和我们之前写的react项目中的编辑路由的方式还是有区别的。我们每一个人都有着自己的编码习惯,路由的存放就是有着很大的区别。项目中他们是推荐的是_layout.tsx的方式,如果是有着菜单方式的路由,那就将页面放在他们举例的tabs文件夹中。index.tsx是路由的入口文件。
详细的编程代码参考
https://reactnative.dev/
其中注意的是这些文件都有着自己的定义,以app.json为例,里面有引用名称,版本号,桌面图标,启动动画、图片。等等。

十、打包和上线

我们再写完这个项目的时候想移植到手机上怎么办,这就需要到我们的expo官网了(上面有)
我们要配置Android还是ios。这里我没有使用过ios,因为ios需要这个苹果开发者权限,需要钱。但是Android是免费的,那这里就有疑问了,为什么Android免费,ios收费,因为我们的打包是由EXPO官网完成的,我们要在编辑器里面进行登录,这里面也明确给出了命令。登录ios的时候需要我们的ios开发账号,这就是一个阻碍。我们配置完成的时候会生成一个eas.json文件我们要在其中配置打包方式,就是Android中的apk安装包,这里只需要复制代码,把这个production覆盖。



"production": {
      "autoIncrement": true,
      "android": {
        "buildType": "apk"
      }
    }  

之后就是打包上传EXPO官网了,这里EXPO会自动帮我们完成。这个打包过程有着十几分钟吧。

通过 Expo,你可以专注于业务逻辑而非环境配置,适合个人开发者和小团队快速迭代。若未来需要复杂原生功能,可通过 EAS 逐步过渡。希望这个博客会对你有帮助......./33-66。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号