开发规范:
为了实现多端兼容,综合考虑编译速度、运行性能等等因素,uni-app 约定了如下开发规范:
- 页面文件遵循 Vue 单文件组件 (SFC) 规范
- 组件标签靠近小程序规范,详见 uni-app 组件规范
- 接口能力(JS API)靠近微信小程序规范,但需将前缀 wx 替换为 uni ,详见 uni-app接口规范
- 数据绑定及事件处理同 Vue.js 规范,同时补充了App及页面的生成周期
- 为兼容多端运行,建议使用 flex布局 进行开发
目录结构:
一个 uni-app工程,默认包含如下目录和文件:
┌─components uni-app组件目录
│ └─comp-a.vue 可复用的a组件
├─hybrid 存放本地网页的目录,详见
├─platforms 存放各平台专用页面的目录,详见
├─pages 业务页面文件存放的目录
│ ├─index
│ │ └─index.vue index页面
│ └─list
│ └─list.vue list页面
├─static 存放应用引用静态资源(如图片、视频等)的目录,注意:静态资源只能存放于此
├─wxcomponents 存放小程序组件的目录,详见
├─main.js Vue初始化入口文件
├─App.vue 应用配置,用来配置App全局样式以及监听 应用生命周期
├─manifest.json 配置应用名称、appid、logo、版本等打包信息,详见
└─pages.json 配置页面路由、导航条、选项卡等页面类信息,详见
注意:
- static 目录下的 js 文件不会被编译,如果里面有 es6 的代码,不经过转换直接运行,在手机设备上会报错
- css、less/scss 等资源文件同样不要放在 static 目录下,建议这些公用的资源放在 common 目录下
- HBuilderX 1.9.0+ 支持在根目录创建 ext.json、sitemap.json 文件
有效目录 | 说明 |
---|---|
app-plus | App |
h5 | H5 |
mp-weixin | 微信小程序 |
mp-alipay | 支付宝小程序 |
mp-baidu | 百度小程序 |
资源路径说明:
模板内引入静态资源:
在 template 标签中 通过 image、video等标签的 src 属性引入静态资源时,可以使用相对路径或绝对路径,如下代码:
<!-- 绝对路径,/static指根目录下的static目录,在cli项目中/static指src目录下的static目录 -->
<image class="logo" src="/static/logo.png"></image>
<image class="logo" src="@/static/logo.png"></image>
<!-- 相对路径 -->
<image class="logo" src="../../static/logo.png"></image>
注意:
- @开头的绝对路径以及相对路径会经过 base64 转换规则校验
- 引入的静态资源在非h5平台,均不转为 base64
- H5 平台,小于4kb的资源会被转换为 base 64,其余不转
- 自 HBuilderx 2.6.6-alpha 起 template 内支持 @ 开头路径引入静态资源,旧版本不支持此方法
- App平台自HBuilderX 2.6.9-alpha起template节点中引用静态资源文件时(如:图片),调整查找策略为【基于当前文件的路径搜索】,与其他平台保持一致
- 支付宝小程序组件内 image 标签不可使用相对路径
js文件引入:
js 文件或 script 标签内(包括renderjs等)引入 js 文件时,可以使用相对路径和绝对路径,形式如下:
// 绝对路径,@指向项目根目录,在cli项目中@指向src目录
import add from '@/common/add.js'
// 相对路径
import add from '../../common/add.js'