创建你的第一个应用
编辑
在本章中,学习如何创建一个新的 Expo 项目。
在本章中,让我们学习如何创建一个新的 Expo 项目以及如何使其运行。

前提条件
我们需要以下内容来开始:
- 在物理设备上安装 Expo Go
- 安装 Node.js (LTS 版本)
- 安装 VS Code 或其他首选的代码编辑器或 IDE
- 拥有一个打开终端窗口的 macOS、Linux 或 Windows(PowerShell 和 WSL2)
本教程假设你对 TypeScript 和 React 有一定的了解。如果你不熟悉它们,可以查看 TypeScript 手册 和 React 的官方教程。
1
初始化一个新的 Expo 应用
我们将使用 create-expo-app 来初始化一个新的 Expo 应用。它是一个用于创建新的 React Native 项目的命令行工具。在你的终端中运行以下命令:
# 创建一个名为 StickerSmash 的项目- npx create-expo-app@latest StickerSmash# 导航到项目目录- cd StickerSmash该命令将创建一个名为 StickerSmash 的新项目目录,使用 默认 模板。该模板具有构建我们的应用所需的基本样板代码和库,包括 Expo Router。我们将继续根据需要在本教程中添加更多库。
2
下载资产
我们将在整个教程中使用这些资产。
下载归档后:
- 解压归档并用新资产替换 your-project-name/assets/images 目录中的默认资产。
- 在代码编辑器或 IDE 中打开项目目录。
3
4
在移动设备和网页上运行应用
在项目目录中,运行以下命令以从终端启动开发服务器:
- npx expo start运行上述命令后:
- 开发服务器将启动,你将在终端窗口中看到一个二维码。
- 扫描该二维码以在设备上打开应用。在 Android 上,使用 Expo Go > Scan QR code 选项。在 iOS 上,使用默认的相机应用。
- 要运行网页应用,请在终端中按 w。这将在默认网页浏览器中打开网页应用。
一旦在所有平台上运行,应用应如下所示:
5
编辑首页屏幕
app/index.tsx 文件定义了在应用屏幕上显示的文本。它是我们应用的入口点,并在开发服务器启动时执行。它使用核心 React Native 组件,如 <View> 和 <Text> 来显示背景和文本。
应用于这些组件的样式使用 JavaScript 对象,而不是在网络上使用的 CSS。然而,如果你之前在网络上使用过 CSS,许多属性将是你所熟悉的。大多数 React Native 组件接受 style 属性,该属性将 JavaScript 对象作为其值。有关更多详细信息,请参见 React Native 中的样式。
让我们修改 app/index.tsx 屏幕:
- 从
react-native中导入StyleSheet并创建一个styles对象以定义我们的自定义样式。 - 将
styles.container.backgroundColor属性添加到<View>中,值为#25292e。这会改变背景颜色。 - 将
<Text>的默认值替换为 "首页"。 - 为
<Text>添加styles.text.color属性,值为#fff(白色),以改变文本颜色。
import { Text, View, StyleSheet } from 'react-native'; export default function Index() { return ( <View style={styles.container}> <Text style={styles.text}>首页</Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#25292e', alignItems: 'center', justifyContent: 'center', }, text: { color: '#fff', }, });
React Native 使用与 web 相同的颜色格式。它支持十六进制三位数(这就是
#fff),rgba,hsl和命名颜色,例如red、green、blue、peru和papayawhip。有关更多信息,请参见 React Native 中的颜色。
一旦你保存你的更改,它们会被发送并应用到连接到开发服务器的运行中的应用:
总结
第一章:创建你的第一个应用
我们成功创建了一个新的 Expo 项目,使用了 React Native 核心组件,并准备开发我们的 StickerSmash 应用。
在下一章中,我们将学习如何在我们的应用中添加堆栈和标签导航。