前端学习记录
  • 前言及目录
  • 前端基础
    • HTML
    • CSS
      • CSS学习之布局
    • JavaScript
      • 跟着月影学JavaScript
      • JavaScript之对象、原型链及继承
      • JavaScript中的类
      • onclick与addEventListener区别
      • JS手撕题
    • HTTP与浏览器
      • HTTP实用指南
      • Web开发的安全之旅
    • 通用知识
      • 前端必须知道的开发调试知识
      • 前端设计模式应用
      • Web 标准与前端开发
  • 数据结构及算法
    • 数据结构
      • 1、线性表(List)
      • 2、堆栈(Stack)
      • 3、队列(Queue)
      • 4、二叉树(Binary Tree)
      • 5、二叉搜索树与平衡二叉树(BST & AVL)
      • 6、堆(Stack)& 哈夫曼树 & 并查集
      • 7、图(Graph)
        • 图论——解决最小生成树问题(Kruskal算法&Prim算法)
      • 8、排序(sort)
      • 9、散列表(hash)
      • 数据结构习题
        • 第一周:最大子列和算法、二分查找
        • 第二周:线性结构
        • 第三周:栽树(二叉树等)
        • 第四周:二叉搜索树&二叉平衡树
        • 第五周:堆&哈夫曼树&并查集
        • 第六周:图(上)连通集 、DFS&BFS
        • 第七周:图(中)Floyd算法求最短路
        • 第八周:图(下)
        • 第九周:排序(上)归并&堆排序
        • 第十周:排序(下)
        • 第十一周:散列查找 & KMP
    • CS基础
      • 编译原理 实验一 词法分析器设计
      • 编译原理 实验二 LL(1)分析法程序
    • LeetCode
      • 冲刺春招-精选笔面试 66 题大通关
        • day1:21. 合并两个有序链表、146. LRU 缓存、25. K 个一组翻转链表
        • day2:14. 最长公共前缀、3. 无重复字符的最长子串、124. 二叉树中的最大路径和
        • day3:206. 反转链表、199. 二叉树的右视图、bytedance-016最短移动距离
        • day4:1. 两数之和、15. 三数之和、42. 接雨水
        • day5:7. 整数反转、215. 数组中的第K个最大元素、23. 合并K个升序链表
        • day6:33. 搜索旋转排序数组、54. 螺旋矩阵、bytedance-006. 夏季特惠
        • day7:53. 最大子数组和、152. 乘积最大子数组、41. 缺失的第一个正数
        • day8:20. 有效的括号、200. 岛屿数量、76. 最小覆盖子串
        • day9:105. 从前序与中序遍历序列构造二叉树、103. 二叉树的锯齿形层序遍历、bytedance-010. 数组组成最大数
        • day10:94. 二叉树的中序遍历、102. 二叉树的层序遍历、394. 字符串解码
        • day11:415. 字符串相加、5. 最长回文子串、72. 编辑距离
        • day12:64. 最小路径和、300. 最长递增子序列、bytedance-004. 机器人跳跃问题
        • day13:88. 合并两个有序数组、31. 下一个排列、4. 寻找两个正序数组的中位数
        • day14:121. 买卖股票的最佳时机、56. 合并区间、135. 分发糖果
        • day15:232. 用栈实现队列、22. 括号生成、128. 最长连续序列
        • day16:bytedance-007. 化学公式解析、129. 求根节点到叶节点数字之和、239. 滑动窗口最大值
        • day17:141. 环形链表、236. 二叉树的最近公共祖先、92. 反转链表 II
        • day18:322. 零钱兑换、198. 打家劫舍、 bytedance-003. 古生物血缘远近判定
        • day19:160. 相交链表、143. 重排链表、142. 环形链表 II
        • day20:704. 二分查找、43. 字符串相乘、bytedance-002. 发下午茶
        • day21题目:69. x 的平方根、912. 排序数组、887. 鸡蛋掉落
        • day22:151. 颠倒字符串中的单词、46. 全排列、2. 两数相加
      • 剑指 Offer
        • 剑指offer day1 栈与队列(简单)
        • 剑指offer day2 链表(简单)
        • 剑指offer day3 字符串(简单)
        • 剑指offer day4 查找算法(简单)
        • 剑指offer day5 查找算法(中等)
        • 剑指offer day6 搜索与回溯算法(简单)
        • 剑指offer day7 搜索与回溯算法(简单)
        • 剑指offer day8 动态规划(简单)
        • 剑指offer day9 动态规划(中等)
        • 剑指offer day10 动态规划(中等)
        • 剑指offer day11 双指针(简单)
        • 剑指offer day12 双指针(简单)
        • 剑指offer day13 双指针(简单)
        • 剑指offer day14 搜索与回溯算法(中等)
        • 剑指offer day15 搜索与回溯算法(中等)
        • 剑指offer day16 排序(简单)
        • 剑指offer day17 排序(中等)
      • 剑指 Offer 专项突击版
  • 前端进阶
    • React
      • 响应式系统与 React
      • React学习小记
      • Redux学习之Redux三原则、createSore原理及实现
    • Vue
    • TypeScript
      • TypeScript入门
      • TypeScript 类型体操练习
        • Easy题(13/13)
        • Middle(20/72)
    • 前端工程化
      • Webpack知识体系
    • Node
    • 前端动画与绘图
      • WebGL基础
      • 前端动画简介
      • Floating UI 使用经验分享 - Popover
      • Floating UI 使用经验分享 - Dialog
      • Three.js 学习
        • 学习记录
        • 资源记录
    • 前端性能优化
    • 跨端
      • RN 学习小记之使用 Expo 创建项目
    • 开源
    • SEO 优化
      • 搜索引擎优化 (SEO) 新手指南笔记
  • 笔面试记录
    • 面经集锦
      • 2022春暑期实习MetaApp一二面面经
      • 2022春暑期实习字节前端一面凉经
    • 笔试复盘
      • 2022春暑期实习-美团前端-笔试
      • 2022春暑期实习-360前端-笔试(AK)
      • 2022春暑期实习-京东前端-笔试
      • 2022春暑期实习-网易雷火前端-笔试(AK)
      • 2022春暑期实习-网易互联网前端-暑期实习笔试
由 GitBook 提供支持
在本页
  • RN 相关资料
  • 开发环境
  • 使用 Expo

这有帮助吗?

在GitHub上编辑
导出为 PDF
  1. 前端进阶
  2. 跨端

RN 学习小记之使用 Expo 创建项目

上一页跨端下一页开源

最后更新于7个月前

这有帮助吗?

由于业务需要,开始学习RN以备后面的需求,而虽然之前有用过 RN 但是项目搭建等都是封装好的脚手架,对本身其实了解不算太多,于是打算记录一下个人从头搭建 RN 项目的一个过程。顺带进行一个资料收集。

适合:有前端基础,有前端基本开发环境,想了解一下 Expo 搭建 RN 项目过程的人群

RN 相关资料

  • 官方网站:

  • 中文网:

  • Expo 官网:

  • Github 资源

    • Awesome React Native是一个很棒的风格列表,它策划了最好的React Native库、工具、教程、文章等。

    • Ignite 是 Expo 和裸 React Native 中最受欢迎的 React Native 应用程序样板,是六年多持续 React Native 开发的结晶。

  • 博文

开发环境

win 下搭建安卓开发环境

安卓上,要注意的就是安装 Android Studio & Android SDK,Android Studio 默认会安装最新版本的 Android SDK。目前编译 React Native 应用需要的是 Android 13 (Tiramisu) 版本的 SDK(注意 SDK 版本不等于终端系统版本,RN 目前支持 android 5 以上设备)。你可以在 Android Studio 的 SDK Manager 中选择安装各版本的 SDK。

1. 安装 Android Studio

  • Android SDK

  • Android SDK Platform

  • Android Virtual Device

2. 安装安卓 SDK

Android Studio 默认安装最新的 Android SDK。 使用本机代码构建 React Native 应用程序尤其需要 Android 13 (Tiramisu) SDK。可以通过 Android Studio 中的 SDK 管理器安装其他 Android SDK。

  1. 打开 Android Studio,单击“More Actions”按钮并选择“SDK Manager”。

  2. 从SDK Manager中选择“SDK Platforms”选项卡,然后勾选右下角“Show Package Details”旁边的框。查找并展开 Android 13 (Tiramisu) 条目,然后确保选中以下项目:

  • Android SDK Platform 33

  • Intel x86 Atom_64 System Image 或者 Google APIs Intel x86 Atom System Image

  1. 接下来,选择“SDK Tools”选项卡并选中“Show Package Details”旁边的复选框。查找并展开 Android SDK Build-Tools 条目,然后确保选择了 33.0.0 (ps: 现在是 34.0.0了)

  2. 配置 ANDROID_HOME 环境变量 高级系统设置 - 环境变量 - 单击 New... 创建一个新的 ANDROID_HOME 用户变量,指向您的 Android SDK 的路径:

默认情况下,SDK 安装在以下位置:

%LOCALAPPDATA%\Android\Sdk

eg: C:\Users\xxxx\AppData\Local\Android\Sdk

可以在 Android Studio 设置中的Appearance & Behavior → System Settings → Android SDK 下找到 SDK 的实际位置。

验证环境变量已添加:

  • 打开powershell

  • 复制并粘贴 Get-ChildItem -Path Env:\ 到 powershell

  • 验证 ANDROID_HOME 已添加

使用 Expo

为什么用 Expo ?

Expo是一组工具、库和服务,可以通过编写JavaScript来构建本地的iOS和android应用程序。说人话,就是在React Native的基础上再封装了一层,让我们的开发更方便,更快速。

  • 做过移动端的同学在做跨平台之前肯定会担心一个点,就是各种原生功能(相机,相册,定位,蓝牙等等),使用expo的话,会比你开发一个裸的React Native真的会快很多,而且会少踩很多坑

初始化 Expo 项目

使用 create-expo-app 来初始化一个新的 Expo 应用程序。它是一个命令行工具,允许创建一个安装了 expo 包的新 React Native 项目。

npx create-expo-app StickerSmash
cd StickerSmash

现在,让我们在我们最喜欢的代码编辑器或 IDE 中打开项目目录。在本教程中,我们将使用 VS Code 作为示例。

启动项目

要在 Web 上运行该项目,我们需要安装以下有助于在 Web 上运行该项目的依赖项:

npx expo install react-dom react-native-web @expo/webpack-config

启动

npx expo start
Scan QR code
启动成功

Expo 推荐配合库

以下是一些 Expo 官方推荐与之配合的库:

    • react-native-safe-area-context 提供了一个灵活的 API,用于访问 Android 和 iOS 的设备安全区域插入信息。它还提供了一个 SafeAreaView 组件,您可以使用该组件代替 View 来插入视图以自动考虑安全区域。

    • 在您的 Expo 项目中,您可以使用 React Native 的动画 API。然而,如果你想使用性能更好的更高级的动画,你可以使用 react-native-reanimated 库。它提供了一个 API,可以简化创建流畅、强大且可维护的动画的过程。

    • expo-secure-store 提供了一种在设备本地加密和安全存储键值对的方法。

还有其他的一些推荐库,可以看这里

下载并安装 Android Studio。在 Android Studio 安装向导中,确保选中以下所有项目旁边的框:

如果您尚未使用 Hyper-V: Performance (Intel ® HAXM) (有关 AMD 或 Hyper-V,请 )

Pasted image 20230620141725.png
Pasted image 20230620141904.png
Pasted image 20230620141558.png
Pasted image 20230620142037.png

没有做过移动端的前端那就更需要这个了,不然移动端的一些隐藏的限制和坑,会让你很头疼 ——

接下来将根据官网教程,搭建一个Expo的应用程序:

在官方文档里下载演示项目所需的图片等静态资源,将项目中的 assets 替换:

安全区域库

动画库

存储数据

,:通过OAuth对用户进行认证

:在启动应用程序时制作一个闪屏(官方文档)

管理你的应用程序的l10n/i18n,以达到本地化的目的

:加载资产、字体等。

:在应用程序中使用地图

or :从设备上打开图像或视频

:在应用程序和设备之间共享数据

: 在设备存储器上保存数据

: 使用设备的摄像头拍摄照片和视频

:来自 Expo 推送服务的推送通知

Site Unreachable
Introduction · React Native
Core Components and APIs · React Native
简介 · React Native 中文网
Expo
GitHub - jondot/awesome-react-native
GitHub - infinitered/ignite
📝 没 2 年 React Native 开发经验,你都遇不到这些坑 - 掘金
Setting up the development environment · React Native
搭建开发环境 · React Native 中文网
Download and install Android Studio
参见此处
<cite>React Native 基于Expo开发(一)项目搭建 - 掘金</cite>
Create your first app - Expo Documentation
Download assets
Install dependencies 安装依赖
react-native-safe-area-context
react-native-reanimated
Store data - Expo Documentation
开始使用React Native和Expo SDK - 掘金
AppAuth
AuthSession
SplashScreen
localization
AppLoading
MapView
ImagePicker
ImageManipulator
Sharing
SecureStore
Camera
Notifications
Screenshot_2023-06-20-14-37-42-694_host.exp.expon.jpg
Screenshot_2023-06-20-14-37-23-383_host.exp.expon.jpg