uni-app 项目目录结构

1. 前言

在创建完成 uni-app 项目后,系统会默认帮我们生成一些文件,这些文件就是初始项目目录结构。

日常开发过程中,都是需要在这个目录结构的基础上面完成项目搭建,所以,我们首先需要了解这个初始目录结构各个目录的含义。

在创建项目时,选择不同的模板生成的项目目录是不一样的,我们先介绍两个最常见的项目模板,uni-ui 项目模板、Hello uni-app 模板。了解这两个项目模板生成的项目目录,其他模板生成的目录也可以掌握。

我们本小节来了解一下项目目录以及这些文件夹的作用。

2. uni-ui 项目目录介绍

创建项目时,我们可以选择创建什么类型的模板,如果选择 uni-ui 项目模板,系统就会自动帮我们生成下面的项目目录。

各文件的作用如下:

文件名称 作用
components 是一个用来存放组件的文件夹,从外部引用的组件,或者自己自定义的组件都是放在这个文件夹中
pages 是一个用来存放所有页面的文件夹,也是我们经常操作的一个目录
static 是一个存放静态资源的文件夹,例如图片等
unpackage 是打包目录,存放打包后的文件。有些新建项目目录中没有这个文件夹,在微信开发者工具等编译平台运行后,也会生成这个文件。
App.vue 是页面入口文件,所有页面都是在 App.vue 下进行切换的,可以调用应用的生命周期函数
main.js 是项目入口文件,主要用来初始化 vue 实例并使用需要的插件
manifest.json 是应用配置文件,用于指定应用的名称、图标、权限等
pages.json 是全局配置文件,可以配置页面文件路径、窗口样式、原生的导航栏、底部 tab 栏等
uni.scss 是 uni-app 的样式包。在其他文件中可以快速引用样式包里面的样式

其中 unpackage 打包目录,存放的是打包后的文件,有时候打包后会出现图片或者组件失效的情况,可以检查一下引用路径是否有错误。

3. Hello uni-app 项目目录介绍

创建项目时,选择 Hello uni-app 项目模板,项目创建完成后,会帮我们生成下面的项目目录。其中有几个文件与 uni-ui 项目目录重复了,作用都是一样的。

各文件的作用如下:

文件名称 作用
common 是存放公共 js 和 css 的文件夹
components 是用来存放组件的文件夹
hybrid 是存放本地网页 .html 文件的文件夹
pages 是用来存放所有页面的文件夹
platforms 是存放各平台专用页面的文件夹,如果想把各平台的页面文件更彻底的分开,可以 platforms 目录中创建子目录,存放不同平台的页面文件
static 是存放静态资源的文件夹
store 是 vuex 状态管理文件夹,在 uni-app 项目内置了 vuex,使用时直接在 main.js 里面配置一下就可以了
wxcomponents 存放小程序组件的目录,详见 2.1
unpackage 打包目录
App.vue 页面入口文件
main.js 项目入口文件
manifest.json 应用配置文件
package.json 是项目的主配置文件,里面包含了 uni-app 项目的基本描述信息、项目所依赖的各种第三方库以及版本信息、以及可执行的脚本信息
pages.json 全局配置文件
template.h5.html 是 h5 端的网页模板文件
uni.scss uni-app 的样式包

4. 各平台小程序组件存放目录

uni-app 还有一个非常牛的地方,就是支持在 App 和小程序中使用小程序自定义的组件,支持情况如下:

平台 支持情况 小程序组件存放目录
H5 从 HBuilderX2.4.7 起,支持微信小程序组件 wxcomponents
App(不含 nvue) 支持微信小程序组件 wxcomponents
微信小程序 支持微信小程序组件 wxcomponents
支付宝小程序 支持支付宝小程序组件 mycomponents
百度小程序 支持百度小程序组件 swancomponents
字节跳动小程序 支持字节跳动小程序组件 ttcomponents
QQ 小程序 支持 QQ 小程序组件 wxcomponents

4.1 使用方式

在项目根目录下的 pages.json 文件中,在页面属性 styles 中增加下面的设置。
实例:

{
  "path" : "index/index",
  "style":{
       "usingComponents":{
            "custom":"/wxcomponents/custom/index"
            "custom":"/swancomponents/custom/index"
            "custom":"/mycomponents/custom/index"
         }
   }
 }

在页面中使用实例:

<view>
  <custom name="uni-app"></custom>
</view>

5. 小结

系统根据通常开发的情况,帮我们生成了这个项目目录。这些项目目录不是一成不变的,我们可以按需使用,也可以自己继续在这个目录中新建文件夹。本节主要介绍了 uni-app 项目目录,重点如下:

  • 使用 uni-ui 模式创建项目时,项目目录以及各个文件夹的作用;
  • 使用 Hello uni-app 模式创建项目时,项目目录以及各个文件夹的作用;
  • 各个平台小程序组件存放目录以及使用方式。