3. 文件结构
Expo官方模版的基本目录和根文件
| 名称 | 类型 | 用途说明 |
|---|---|---|
app | 文件夹 | 包含应用的导航结构(采用基于文件的导航方式)。 app 目录的文件结构将决定应用的导航结构。这个应用目前有两个路由,它们由两个文件定义: app/(tabs)/index.tsx 和 app/(tabs)/explore.tsx。 而位于 app/(tabs)/_layout.tsx 的布局文件用于设置标签页导航器(tab navigator)。 |
assets | 文件夹 | assets 目录包含用于应用图标的 adaptive-icon.png(Android 使用)和 icon.png(iOS 使用)。 它还包含项目启动屏所使用的图片 splash.png,以及当应用在浏览器中运行时使用的 favicon.png。 |
components | 文件夹 | 包含 React Native 组件,例如 ThemedText.tsx,它用于创建会根据应用的浅色模式和深色模式切换配色方案的文本元素。 |
constants | 文件夹 | 包含 Colors.ts,它存放了应用中使用的所有颜色值列表。 |
hooks | 文件夹 | 包含 React Hooks,用于在组件之间共享常用行为。例如,useThemeColor() 是一个 Hook,根据当前主题返回对应的颜色。 |
scripts | 文件夹 | 包含 reset-project.js,可以通过 npm run reset-project 运行。 该脚本会将现有的 app 目录重命名为 app-example,并创建一个新的 app 目录,其中包含一个 index.tsx 文件。 |
app.json | 文件 | 包含项目的配置选项,被称为应用配置(app config)。 这些选项会在开发、构建、提交和更新应用时改变项目的行为。 |
package.json | 文件 | package.json 文件包含项目的依赖、脚本和元数据。 每当向项目添加新的依赖时,该依赖都会被记录在此文件中。 |
tsconfig.json | 文件 | 包含 TypeScript 用来在整个项目中强制类型安全的规则。 |
为了根目录文件夹数量控制,方便查看,我个人会把一些和功能强相关的目录和文件放到
/src下。当然这样以来我们就需要再tsconfig.json中做一些配置了,因为我喜欢用Path Mapping(路径映射)。 这包括如app/components/constants/hooks等目录。
我的一个目录设置案例
执行:
tree -L 2 -d -I "node_modules|.git"
.
├── _other
├── android
│ ├── app
│ ├── build
│ └── gradle
├── assets
│ ├── fonts
│ ├── images
│ └── lottie
├── ios
│ ├── build
│ ├── Pods
│ ├── yi40
│ ├── yi40.xcodeproj
│ └── yi40.xcworkspace
├── lib
│ ├── hexagram
│ ├── interpretations
│ ├── jingfang
│ └── yilin
├── locale
│ ├── common
│ ├── meta
│ └── yi
├── scripts