本篇目标:从零开始搭建uniapp开发环境,创建第一个项目,理解基础概念
🎯 本篇学习目标通过本篇教程,你将学会:
✅ 理解什么是uniapp,为什么选择uniapp✅ 搭建完整的uniapp开发环境✅ 创建第一个uniapp项目✅ 掌握项目目录结构和配置文件✅ 理解小程序的基础概念和生命周期✅ 运行第一个Hello World程序📚 第一章:uniapp简介与技术选型1.1 什么是uniapp?uniapp是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到:
iOS AppAndroid App Web(响应式)微信小程序支付宝小程序百度小程序字节跳动小程序QQ小程序快应用1.2 为什么选择uniapp?🚀 开发效率优势代码语言:txt复制传统开发方式:
iOS App → Swift/Objective-C (3个月)
Android App → Java/Kotlin (3个月)
微信小程序 → 微信原生语法 (2个月)
Web应用 → Vue/React (2个月)
总计:10个月
uniapp开发方式:
一套Vue代码 → 自动编译到所有平台 (2个月)
效率提升:5倍💰 成本优势分析人力成本降低80%:一个前端开发者替代多个平台开发者维护成本降低90%:一套代码统一维护,bug修复一次生效学习成本降低70%:只需掌握Vue.js语法🎯 技术优势生态完善:基于Vue.js,拥有丰富的组件库性能优秀:编译到原生代码,性能接近原生应用更新及时:官方团队活跃,版本更新频繁社区活跃:大量开源组件和解决方案1.3 uniapp vs 其他跨平台方案方案
学习成本
性能
生态
维护性
推荐指数
uniapp
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
React Native
⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐
⭐⭐⭐⭐
Flutter
⭐
⭐⭐⭐⭐⭐
⭐⭐⭐
⭐⭐⭐
⭐⭐⭐
Taro
⭐⭐⭐
⭐⭐⭐
⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐
🛠️ 第二章:开发环境搭建2.1 环境要求检查在开始之前,请确保你的电脑满足以下要求:
操作系统要求Windows:Windows 7及以上(推荐Windows 10/11)macOS:macOS 10.12及以上Linux:Ubuntu 16.04及以上硬件要求内存:8GB以上(推荐16GB)硬盘空间:10GB以上可用空间处理器:Intel i5或同级别AMD处理器2.2 安装HBuilderXHBuilderX是DCloud官方提供的uniapp开发IDE,专门为uniapp开发优化。
步骤1:下载HBuilderX访问官网:https://www.dcloud.io/hbuilderx.html选择"正式版"下载(稳定可靠)选择对应操作系统版本代码语言:bash复制# 下载地址示例
Windows: HBuilderX.exe
macOS: HBuilderX.dmg
Linux: HBuilderX.tar.gz步骤2:安装和配置Windows用户:双击exe文件安装选择安装路径(建议非系统盘)创建桌面快捷方式macOS用户:打开dmg文件拖拽到Applications文件夹在Launchpad中启动首次启动配置:代码语言:javascript复制// 推荐的编辑器设置
{
"editor.tabSize": 2, // 缩进大小
"editor.insertSpaces": true, // 使用空格缩进
"editor.wordWrap": "on", // 自动换行
"editor.fontSize": 14, // 字体大小
"editor.fontFamily": "Consolas, 'Courier New', monospace"
}image-202601011946364292.3 安装微信开发者工具微信开发者工具是调试和预览小程序必备的工具。
步骤1:下载微信开发者工具访问:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html选择对应系统版本下载步骤2:安装和登录安装完成后启动工具使用微信扫码登录首次使用需要接受开发者协议步骤3:配置项目服务端口代码语言:javascript复制// 默认配置
{
"port": 9420, // 开发服务器端口
"autoOpenDevtools": true, // 自动打开调试工具
"compileType": "miniProgram" // 编译类型
}2.4 配置开发环境HBuilderX插件安装在HBuilderX中安装必要插件:
打开插件市场:菜单栏 → 工具 → 插件安装必装插件清单:代码语言:bash复制# 基础插件
- uni-app编译器 # uniapp项目编译
- 微信小程序支持 # 小程序开发支持
- App云打包 # App打包功能
- uni-ui # 官方UI组件库
# 开发效率插件
- Emmet # 快速编写HTML/CSS
- 代码格式化beautiful # 代码格式化
- Git插件 # 版本控制
- FTP/SFTP # 文件上传image-20260101194700138环境变量配置(可选)代码语言:bash复制# Windows用户添加到系统环境变量
HBUILDERX_HOME=C:\HBuilderX
PATH=%PATH%;%HBUILDERX_HOME%
# macOS/Linux用户添加到~/.bashrc或~/.zshrc
export HBUILDERX_HOME=/Applications/HBuilderX
export PATH=$PATH:$HBUILDERX_HOME🚀 第三章:创建第一个uniapp项目3.1 使用HBuilderX创建项目步骤1:新建项目启动HBuilderX点击"文件" → "新建" → "项目"选择"uni-app"项目类型步骤2:配置项目信息代码语言:javascript复制// 项目配置示例
{
"项目名称": "chatgpt-miniprogram",
"项目目录": "D:/workspace/uniapp-projects",
"模板选择": "Hello uni-app",
"Vue版本": "Vue3",
"TypeScript": false // 初学者建议先用JavaScript
}步骤3:项目创建完成创建成功后,你会看到以下目录结构:
代码语言:txt复制chatgpt-miniprogram/
├── pages/ # 页面文件夹
│ ├── index/ # 首页模块
│ │ └── index.vue # 首页
│ ├── auth/ # 认证模块
│ │ └── auth.vue # 认证页面
│ └── chat/ # 聊天模块
│ └── chat.vue # 聊天页面
├── components/ # 组件文件夹
│ ├── common/ # 通用组件
│ └── chat/ # 聊天组件
├── utils/ # 工具类文件夹
│ ├── apiClient.js # API客户端
│ ├── authApi.js # 认证API
│ └── chatApi.js # 聊天API
├── store/ # 状态管理(如果使用Vuex)
│ ├── index.js # store入口
│ └── modules/ # 模块化store
├── styles/ # 样式文件夹
│ └── variables.scss # 样式变量
├── static/ # 静态资源
├── unpackage/ # 编译输出目录
├── App.vue # 应用配置
├── main.js # 项目入口
├── manifest.json # 应用配置
├── pages.json # 页面路由配置
├── uni.scss # 全局样式
└── package.json # 项目依赖3.2 项目目录结构详解让我们详细了解每个文件和文件夹的作用:
📁 核心文件说明main.js - 项目入口文件
代码语言:javascript复制import App from './App'
// #ifndef VUE3
import Vue from 'vue'
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
...App
})
app.$mount()
// #endif
// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
const app = createSSRApp(App)
return {
app
}
}
// #endifApp.vue - 应用根组件
代码语言:vue复制
export default {
onLaunch: function() {
console.log('App Launch') // 应用启动
},
onShow: function() {
console.log('App Show') // 应用展示
},
onHide: function() {
console.log('App Hide') // 应用隐藏
}
}
/* 全局样式 */
pages.json - 页面路由配置
代码语言:json复制{
"pages": [
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页"
}
}
],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "ChatGPT小程序",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}
}manifest.json - 应用配置清单
代码语言:json复制{
"name": "chatgpt-miniprogram",
"appid": "__UNI__XXXXXX",
"description": "仿ChatGPT的AI聊天小程序",
"versionName": "1.0.0",
"versionCode": "100",
"mp-weixin": {
"appid": "你的小程序AppID",
"setting": {
"urlCheck": false,
"es6": true,
"postcss": true,
"minified": true
}
}
}📁 目录功能详解目录/文件
作用
是否必需
pages/
存放所有页面文件
✅ 必需
static/
静态资源(图片、字体等)
✅ 必需
components/
自定义组件
❌ 可选
utils/
工具函数
❌ 可选
store/
状态管理
❌ 可选
unpackage/
编译输出目录
✅ 自动生成
📱 第四章:小程序基础概念4.1 页面生命周期在uniapp中,每个页面都有完整的生命周期:
代码语言:javascript复制export default {
data() {
return {
title: 'Hello World'
}
},
// 页面生命周期
onLoad(options) {
// 页面加载时触发,只会调用一次
console.log('页面加载', options)
},
onShow() {
// 页面显示时触发
console.log('页面显示')
},
onReady() {
// 页面初次渲染完成时触发
console.log('页面渲染完成')
},
onHide() {
// 页面隐藏时触发
console.log('页面隐藏')
},
onUnload() {
// 页面卸载时触发
console.log('页面卸载')
},
// 下拉刷新
onPullDownRefresh() {
console.log('下拉刷新')
// 记得调用停止下拉刷新
uni.stopPullDownRefresh()
},
// 上拉加载
onReachBottom() {
console.log('触底加载')
}
}4.2 组件系统uniapp使用Vue的组件系统,同时提供了丰富的内置组件:
视图容器组件代码语言:vue复制
基础内容组件代码语言:vue复制
export default {
data() {
return {
richContent: '
这是富文本内容
'}
}
}
4.3 样式系统uniapp支持传统CSS和响应式单位:
代码语言:scss复制
/* 响应式单位rpx:750rpx = 屏幕宽度 */
.container {
width: 750rpx; /* 占满屏幕宽度 */
height: 100vh; /* 占满屏幕高度 */
padding: 30rpx; /* 内边距 */
}
/* 传统CSS单位 */
.title {
font-size: 16px; /* 固定像素大小 */
line-height: 1.5; /* 行高倍数 */
}
/* SCSS变量和嵌套 */
$primary-color: #007aff;
.button {
background-color: $primary-color;
&:hover {
opacity: 0.8;
}
.icon {
margin-right: 10rpx;
}
}
/* 条件编译样式 */
/* #ifdef MP-WEIXIN */
.weixin-only {
display: block;
}
/* #endif */
/* #ifdef APP-PLUS */
.app-only {
display: none;
}
/* #endif */
🎯 第五章:创建Hello World页面5.1 修改首页内容让我们创建一个简单的Hello World页面:
代码语言:vue复制
开始聊天
export default {
data() {
return {
title: 'Hello UniApp',
features: [
{ icon: '🤖', text: 'AI智能对话' },
{ icon: '📱', text: '小程序原生体验' },
{ icon: '⚡', text: '实时流式输出' },
{ icon: '🎯', text: '精准回答问题' }
]
}
},
onLoad() {
console.log('Hello World页面加载完成')
},
methods: {
startChat() {
// 显示提示信息
uni.showToast({
title: '即将跳转到聊天页面',
icon: 'success',
duration: 2000
})
// 2秒后跳转(下个教程会实现聊天页面)
setTimeout(() => {
console.log('跳转到聊天页面')
}, 2000)
}
}
}
.container {
min-height: 100vh;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
padding: 60rpx 40rpx;
box-sizing: border-box;
}
.header {
text-align: center;
margin-bottom: 80rpx;
}
.logo {
width: 120rpx;
height: 120rpx;
margin-bottom: 30rpx;
border-radius: 20rpx;
}
.title {
display: block;
font-size: 48rpx;
font-weight: bold;
color: #ffffff;
margin-bottom: 20rpx;
}
.subtitle {
display: block;
font-size: 28rpx;
color: rgba(255, 255, 255, 0.8);
}
.content {
flex: 1;
}
.card {
background: #ffffff;
border-radius: 20rpx;
padding: 40rpx;
margin-bottom: 60rpx;
box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1);
}
.card-title {
display: block;
font-size: 32rpx;
font-weight: bold;
color: #333333;
margin-bottom: 30rpx;
}
.feature-list {
display: flex;
flex-direction: column;
gap: 24rpx;
}
.feature-item {
display: flex;
align-items: center;
padding: 20rpx;
background: #f8f9fa;
border-radius: 12rpx;
}
.feature-icon {
font-size: 32rpx;
margin-right: 20rpx;
}
.feature-text {
font-size: 28rpx;
color: #666666;
}
.start-btn {
width: 100%;
height: 88rpx;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border: none;
border-radius: 44rpx;
font-size: 32rpx;
color: #ffffff;
font-weight: bold;
}
5.2 添加静态资源创建logo图片文件:
在项目根目录创建static/images/文件夹添加一个120x120像素的logo.png文件或者使用emoji作为临时logo5.3 运行项目在微信小程序中运行在HBuilderX中选择项目点击"运行" → "运行到小程序模拟器" → "微信开发者工具"首次运行会自动打开微信开发者工具在微信开发者工具中预览效果在浏览器中运行(开发调试)点击"运行" → "运行到浏览器" → "Chrome"浏览器会自动打开预览页面支持热重载,修改代码自动刷新🐛 第六章:常见问题与解决方案6.1 环境搭建问题问题1:HBuilderX启动白屏
代码语言:bash复制解决方案:
1. 检查系统权限,以管理员身份运行
2. 关闭杀毒软件的实时保护
3. 清除HBuilderX缓存文件
4. 重新下载最新版本问题2:微信开发者工具连接失败
代码语言:bash复制解决方案:
1. 检查微信开发者工具是否开启服务端口
2. 在HBuilderX中重新配置微信开发者工具路径
3. 确保两个工具版本兼容6.2 项目创建问题问题3:项目创建失败
代码语言:javascript复制// 检查项目名称规范
const validProjectName = {
"允许": "字母、数字、下划线、中划线",
"不允许": "空格、特殊字符、中文",
"示例": "chatgpt-miniprogram ✅",
"错误示例": "ChatGPT 小程序 ❌"
}问题4:编译报错
代码语言:bash复制常见编译错误:
1. 语法错误 → 检查Vue语法和JavaScript语法
2. 组件引用错误 → 检查组件路径和注册
3. 样式编译错误 → 检查SCSS语法
4. 图片路径错误 → 使用相对路径6.3 调试技巧使用console.log调试
代码语言:javascript复制// 在不同生命周期中添加日志
export default {
onLoad() {
console.log('页面加载:', this.$mp)
},
methods: {
handleClick() {
console.log('按钮点击:', new Date())
}
}
}使用uni.showToast显示信息
代码语言:javascript复制methods: {
showDebugInfo() {
uni.showToast({
title: `当前页面: ${this.$mp.page.route}`,
icon: 'none',
duration: 3000
})
}
}📚 第七章:下期预告与作业7.1 下期内容预告在下一篇教程中,我们将:
🎯 设计项目整体架构🎯 创建聊天页面和认证页面🎯 搭建路由导航系统🎯 实现全局状态管理🎯 设计统一的UI组件规范7.2 本期作业请完成以下练习:
作业1:自定义首页内容修改首页的标题和功能特色列表尝试添加更多的功能介绍调整颜色主题和样式作业2:添加新页面创建一个"关于我们"页面在pages.json中配置新页面路由实现页面间的跳转功能作业3:样式练习代码语言:scss复制// 尝试实现以下样式效果
.gradient-card {
// 1. 渐变背景
// 2. 圆角边框
// 3. 阴影效果
// 4. 响应式布局
}7.3 学习资源官方文档
uniapp官方文档:https://uniapp.dcloud.io/Vue3官方文档:https://v3.cn.vuejs.org/社区资源
uniapp插件市场:https://ext.dcloud.net.cn/GitHub示例项目:搜索"uniapp chatgpt"学习建议
多动手实践:每个知识点都要亲自编码验证查阅文档:遇到问题优先查阅官方文档加入社群:参与开发者交流群获取帮助关注更新:uniapp更新较快,及时学习新特性📝 本篇总结通过本篇教程,我们完成了:
✅ 环境搭建:HBuilderX + 微信开发者工具
✅ 项目创建:第一个uniapp项目
✅ 基础概念:页面生命周期、组件系统、样式系统
✅ 实战练习:Hello World页面开发
✅ 问题解决:常见问题的解决方案
关键知识点回顾uniapp的核心优势:一套代码,多端运行项目结构:pages、static、App.vue、main.js等核心文件生命周期:onLoad、onShow、onReady等关键时机样式单位:rpx响应式单位的使用组件使用:view、text、button等基础组件