This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

创建你的第一个应用

编辑页面

在本章中,学习如何创建一个新的 Expo 项目。


在本章中,让我们学习如何创建一个新的 Expo 项目,以及如何让它运行起来。

观看:创建你的第一个通用 Expo 应用
观看:创建你的第一个通用 Expo 应用

从零开始创建一个新的 Expo 项目,并让它在 Android、iOS 和 web 上运行。


Prerequisites

4 requirements

1.

在实体设备上的 Expo Go

在一台实体的 Android 或 iOS 设备上安装 Expo Go

2.

Node.js(LTS)

在你的电脑上安装 Node.js(LTS 版本)

3.

代码编辑器

安装 VS Code 或任何你偏好的代码编辑器或 IDE。

4.

带有终端的开发机器

一台 macOS、Linux 或 Windows(PowerShell 和 WSL2)设备,并打开一个终端窗口。

本教程假设你已经熟悉 TypeScript 和 React。如果你还不熟悉,请查看 TypeScript 手册React 官方教程

1

初始化一个新的 Expo 应用

我们将使用 create-expo-app 来初始化一个新的 Expo 应用。它是一个用于创建新的 React Native 项目的命令行工具。在你的终端中运行以下命令:

Terminal
# 创建一个名为 StickerSmash 的项目
npx create-expo-app@latest StickerSmash

# CLI 会提示你选择一个模板。请选择 SDK 54。
Select an Expo SDK version > SDK 54

# 进入项目目录
cd StickerSmash

这个命令会使用 SDK 54 的默认模板 创建一个名为 StickerSmash 的新项目目录。这个模板包含构建应用所需的基本样板代码和库,包括 Expo Router,并允许我们在已安装 Expo Go 的设备上测试应用。我们会在本教程中根据需要继续添加更多库。

使用默认模板的好处
  • 创建一个已安装 expo 包的 React Native 新项目
  • 包含推荐工具,例如 Expo CLI
  • 包含来自 Expo Router 的标签导航器,以提供基础导航系统
  • 自动配置为可在多个平台上运行项目:Android、iOS 和 web
  • 默认配置 TypeScript

2

下载资源

下载资源压缩包

在本教程中,我们会一直使用这些资源。

下载压缩包后:

  1. 解压压缩包,并替换 your-project-name/assets/images 目录中的默认资源。
  2. 在代码编辑器或 IDE 中打开项目目录。

3

运行 reset-project 脚本

在本教程中,我们将从头构建应用,并理解添加基于文件的导航的基础知识。让我们运行 reset-project 脚本来移除样板代码:

Terminal
npm run reset-project

运行上面的命令后,app 目录中只会保留两个文件(index.tsx_layout.tsx)。脚本会将 app 以及其他目录(componentsconstantshooks 中包含的样板代码)的之前文件移动到 app-example 目录中。我们会在后续过程中创建自己的目录和组件文件。

`reset-project` 脚本是做什么的?

reset-project 脚本会重置项目中的 app 目录结构,并将项目根目录中的之前样板文件复制到另一个名为 app-example 的子目录中。我们可以删除它,因为它不属于我们主应用的结构。

4

在移动设备和 web 上运行应用

在项目目录中,从终端运行以下命令以启动 开发服务器

Terminal
npx expo start

运行上面的命令后:

  1. 开发服务器将启动,你会在终端窗口中看到一个二维码。
  2. 扫描该二维码以在设备上打开应用。在 Android 上,使用 Expo Go > 扫描二维码 选项。在 iOS 上,使用默认相机应用。
  3. 要运行 web 应用,请在终端中按 W。它会在默认的 web 浏览器中打开该应用。

当它在所有平台上都运行起来后,应用应该看起来像这样:

5

编辑 index 屏幕

app/index.tsx 文件定义了应用屏幕上显示的文本。它是我们应用的入口点,并会在开发服务器启动时执行。它使用 React Native 的核心组件,例如 <View><Text>,来显示背景和文本。

应用于这些组件的样式使用 JavaScript 对象,而不是 web 上使用的 CSS。不过,如果你以前在 web 上使用过 CSS,其中很多属性会让你觉得熟悉。大多数 React Native 组件都接受一个 style 属性,其值是一个 JavaScript 对象。更多细节请参阅 React Native 中的样式

让我们修改 app/index.tsx 屏幕:

  1. react-native 导入 StyleSheet,并创建一个 styles 对象来定义我们的自定义样式。
  2. <View> 添加一个 styles.container.backgroundColor 属性,值为 #25292e。这会改变背景颜色。
  3. <Text> 的默认值替换为 "Home screen"。
  4. <Text> 添加一个 styles.text.color 属性,值为 #fff(白色),以更改文本颜色。
app/index.tsx
import { Text, View, StyleSheet } from 'react-native'; export default function Index() { return ( <View style={styles.container}> <Text style={styles.text}>Home screen</Text> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#25292e', alignItems: 'center', justifyContent: 'center', }, text: { color: '#fff', }, });

当你保存更改后,它们会被发送并应用到连接到开发服务器的正在运行的应用中:

总结

Chapter 1: Create your first app

We've successfully created a new Expo project, used React Native core components, and are ready to develop our StickerSmash app.

In the next chapter, we will learn how to add a stack and a tab navigator to our app.

Next: Chapter 2: Add navigation