一、引言
随着互联网多端产品快速发展,企业往往需要同时开发微信小程序、移动端 App 以及 H5 网页。如果针对每个平台单独开发,不仅会产生大量重复代码,还会极大增加后期维护成本。uni-app 作为 DCloud 推出的跨端开发框架,依托 Vue.js 语法,实现一次编码,多端编译运行,有效解决了多端重复开发的痛点。本篇文章面向前端初学者,完整讲解开发环境搭建、项目创建、页面开发、多端适配与打包发布,内容贴合实战,规避新手常见开发问题。
二、uni-app 框架介绍
2.1 核心特性
uni-app 采用编译器 + 运行时双引擎架构,代码可以编译成对应平台的原生代码。项目代码只需要编写一次,就可以发布到微信小程序、支付宝小程序、移动端 Android/iOS 应用、网页 H5、抖音小程序等二十余个平台。
2.2 技术优势
- 技术栈统一:沿用 Vue 语法,熟悉 Vue 的前端开发者几乎可以零门槛上手。
- 渲染性能优异:App 端支持原生渲染,页面流畅度接近原生应用。
- 灵活处理平台差异:内置条件编译语法,可针对不同平台编写差异化代码。
- 配套工具完善:官方 IDE HBuilderX 提供一键运行、一键打包能力,简化开发流程。
三、开发环境部署
3.1 工具准备
- HBuilderX 编辑器:uni-app 官方推荐开发工具,内置编译插件,无需手动配置环境变量,从 DCloud 官网下载正式版本即可。
- 微信开发者工具:用来预览和调试小程序端项目,在微信开放平台官网下载安装。
3.2 项目创建步骤
- 打开 HBuilderX,点击左上角【文件】→【新建】→【项目】。
- 在项目模板中选择 uni-app,填写项目名称与存储目录,选择默认空白模板完成创建。
- 项目创建完成后,自动生成基础目录文件。
四、项目目录结构解析
每一个文件都有明确分工,读懂目录是开发的基础:
- pages 目录:存放所有业务页面,每一个页面独立为一个文件夹。
- static 目录:存放图片、字体等静态资源文件。
- components 目录:存放可复用的公共组件。
- App.vue:应用全局根组件,用来配置全局样式与生命周期。
- main.js:项目入口文件,初始化实例。
- pages.json:全局路由配置文件,管理页面路径、导航栏样式。
- manifest.json:项目配置文件,配置应用名称、权限、打包参数。
五、页面开发与基础语法
5.1 页面基础代码示例
uni-app 页面由 template、script、style 三部分构成,标签需要使用 view、text 等跨端组件,不能直接使用 div、p 这类 DOM 标签。
vue
<template> <view class="content"> <text>{{ contentText }}</text> <button type="primary" @click="openToast">弹出提示框</button> </view> </template> <script> export default { data() { return { contentText: "欢迎学习uni-app跨端开发" } }, methods: { openToast() { uni.showToast({ title: "操作执行成功", icon: "success", duration: 2000 }) } } } </script> <style scoped> .content { padding: 30rpx; } </style>5.2 路由配置 pages.json
新建页面之后,必须在 pages 数组中注册页面路径,否则项目无法识别页面。同时可以自定义导航栏标题、背景色等样式。
json
{ "pages": [ "pages/index/index" ], "globalStyle": { "navigationBarTitleText": "uni-app入门项目", "navigationBarBackgroundColor": "#36D399", "navigationBarTextStyle": "white" } }5.3 常用内置 API
uni 框架提供统一的 API,所有平台调用方式保持一致,无需区分环境:
javascript
运行
// 页面跳转 uni.navigateTo({ url: "/pages/demo/demo" }) // 发起网络请求 uni.request({ url: "https://api.example.com/data", method: "GET", success: (res) => { console.log(res.data) } }) // 本地缓存存储 uni.setStorageSync("userInfo", {name:"张三"})六、多端差异化处理:条件编译
不同平台存在功能差异,利用条件编译语句,可以让代码只在指定平台生效,不会影响其他端。
vue
<!--仅微信小程序生效--> <!-- #ifdef MP-WEIXIN --> <view>微信小程序专属功能</view> <!-- #endif --> <!--仅移动端App生效--> <!-- #ifdef APP-PLUS --> <view>App原生能力模块</view> <!-- #endif -->七、项目运行与打包上线
7.1 项目预览运行
- 运行到浏览器:选择运行到 H5,在网页端预览项目。
- 运行到小程序模拟器:启动微信开发者工具,即可查看小程序效果。
- 真机运行:手机开启 USB 调试,连接电脑预览 App 效果。
7.2 项目打包发布
- 小程序端:点击发行,选择微信小程序,编译出小程序代码包,上传至微信公众平台提交审核。
- H5 网页端:发行生成 dist 资源包,将静态文件部署到云服务器或者对象存储。
- App 端:使用云打包功能,填写应用证书信息,直接生成 Android APK 安装包与 iOS 安装包。
八、新手开发避坑总结
- 样式单位统一使用 rpx,框架会自动换算像素,保证多端屏幕自适应,不要固定 px 数值。
- 禁止使用 document、window 等 BOM、DOM 对象,小程序与 App 端不存在 DOM 环境,会直接报错。
- 图片资源统一放在 static 文件夹,不要放在 pages 页面文件夹内,避免打包后资源丢失。
- 页面路径必须在 pages.json 内注册,否则页面无法正常访问。
九、总结
uni-app 凭借极低的学习门槛和强大的跨端能力,已经成为当下前端跨端开发主流框架。只需要掌握 Vue 基础语法,就可以同时开发小程序、App、H5 三类产品,极大节约开发成本。初学者可以先搭建基础项目,练习页面布局、网络请求、页面跳转等基础功能,再逐步研究组件封装、分包加载、云开发等进阶内容。
后续我会持续更新 uni-app 实战项目教程,包含用户登录、列表渲染、上拉加载更多等常用业务模块。如果本文对你有帮助,欢迎点赞收藏,一起交流前端开发技术。