uni-app 中文文档 uni-app 框架简介

2024-02-25 开发教程 uni-app 中文文档 匿名 3

uni-app 使用 vue 的语法 + 小程序的标签和 API。

开发规范

为了实现多端兼容,综合考虑编译速度,运行性能等因素,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 文件不会被 compile-,里面如果有 es6 的代码,不经过转换直接运行,在手机设备上会报错。
  • css,less/scss 等资源同样不要放在 static 目录下,建议这些公共的资源放在 common 目录下。
  • HbuilderX 1.9.0+ 支持在根目录创建 ext.json sitemap.json 文件。
有效目录说明
应用程式加应用程式
mp-h5H5
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 的资源会被转换成 base64,其余不转。
  • 自 HBuilderX 2.6.6-alpha 起 template 内支持@初始路径日期静态资源,旧版本不支持此方式

js 文件引用

js 文件或 script 标签内(包括renderjs等)日期 js 文件时,可以使用相对路径和绝对路径,形式如下

// 绝对路径,@指向项目根目录,在cli项目中@指向src目录
import add from '@/common/add.js'
// 相对路径
import add from '../../common/add.js'

注意

  • js 文件不支持使用/开头的方式引用

css发布静态资源

css 文件或 style 标签内引用 css 文件时( scss,less 文件同理),只能使用相对路径

/* 绝对路径 */
@import url('/common/uni.css');
@import url('@/common/uni.css');
/* 相对路径 */
@import url('../../common/uni.css');

注意

  • 自 HBuilderX 2.6.6-alpha 起支持绝对路径日期静态资源,旧版本不支持此方式

css 文件或 style 标签内引用的图片路径可以使用相对路径也可以使用绝对路径,需要注意的是,有些小程序端css 文件可以引用本地文件(请看注意事项)。

/* 绝对路径 */
background-image: url(/static/logo.png);
background-image: url(@/static/logo.png);
/* 相对路径 */
background-image: url(../../static/logo.png);

提示

  • @初始的绝对路径以及相对路径会通过 base64 转换规则校验
  • 不支持本地图片的平台,小于 40kb,一定会转 base64。(共四个平台 mp-weixin,mp-qq,mp-toutiao,app v2)
  • h5 平台,小于 4kb 会转 base64,超过 4kb 时不转。
  • 其余平台不会转 base64