一、前言
前面三天我们完成了后端 SSM+MyBatis-Plus 框架搭建和 Druid 连接池配置,今天正式切换到前端开发——Uni-App 项目初始化。
Uni-App 是基于 Vue.js 的跨端开发框架,核心优势是“一套代码多端运行”,能同时适配 H5、微信小程序、App 等平台,完美契合我们“宠物服务平台”多端触达用户的需求(比如用户可能用小程序快速预约服务,也可能用 H5 查看宠物日志)。
今天我们会从“创建 Uni-App 项目”开始,配置核心文件
和底部 TabBar,最后实现 H5 与小程序的跨端预览,为后续开发宠物列表、商家服务等页面打基础。
manifest.json
二、今日教学目标
掌握 HBuilder X 创建 Uni-App 项目的步骤,理解项目目录结构(如
、
pages
的作用);学会配置
manifest.json
(小程序 AppID、H5 运行端口),解决“跨端配置不兼容”问题;实现底部 TabBar(首页/宠物/商家/我的),并完成 H5 与小程序的跨端预览验证。
manifest.json
三、前置准备
已完成 Day1 环境搭建:HBuilder X(App 开发版)、微信开发者工具已安装,且微信开发者工具已开启“服务端口”(设置 → 安全设置 → 勾选“服务端口”);了解基础 Vue 语法:如组件化、
文件结构(
vue
/
template
/
script
),Uni-App 语法与 Vue 高度一致,无需额外学习新语法;项目关键路径参考:
style
(今日所有操作均在
C:Users骆Downloadsmy-pet-custommypetsrcmainwebappfront
目录下)。
front
四、代码实现(核心步骤)
1. 第一步:创建 Uni-App 项目(指定 front 目录)
打开 HBuilder X,按以下步骤创建项目,确保项目目录与后端
下的
webapp
目录一致:
front
点击顶部菜单栏 File → New → Project;在弹出的窗口中:
选择项目类型:Uni-App;输入项目名称:
(与后端
front
下的目录名一致,避免路径混乱);选择模板:默认模板(包含基础目录结构,无需自定义);选择保存路径:
webapp
(确保项目创建后路径为
C:Users骆Downloadsmy-pet-custommypetsrcmainwebapp
); 点击 Create,等待项目创建完成,创建后
webapp/front
目录下会生成核心文件:
front
:存放所有页面(如首页
pages
、宠物页
index
);
pet
:多端配置文件(小程序 AppID、H5 端口等);
manifest.json
:页面路由与 TabBar 配置文件。
pages.json
2. 第二步:配置 manifest.json(多端核心配置)
是 Uni-App 多端适配的核心文件,需配置小程序 AppID 和 H5 运行端口,确保与后端端口兼容:
manifest.json
(1)打开 manifest.json 文件
路径:
C:Users骆Downloadsmy-pet-custommypetsrcmainwebappfrontmanifest.json
(2)编辑核心配置(JSON 格式)
替换默认内容为以下代码,关键配置已加注释:
{
"name": "mypet-宠物服务平台", // 项目名称(显示在小程序/APP 标题栏)
"appid": "__UNI__A075441", // 微信小程序 AppID(需从微信公众平台申请,测试可先用测试 AppID)
"description": "提供宠物医疗预约、用品购买、社区分享的跨端平台",
"versionName": "1.0.0", // 版本号
"versionCode": "100",
"uniStatistics": {
"enable": false // 关闭统计(可选)
},
// H5 端配置(关键:端口与后端一致,避免跨域问题)
"h5": {
"devServer": {
"port": 8080, // 与后端 Tomcat 端口一致(后端默认 8080)
"proxy": {
// 后续前端调用后端接口时,用 /api 代理后端地址(提前配置,避免跨域)
"/api": {
"target": "http://localhost:8080/mypet", // 后端项目地址
"changeOrigin": true,
"pathRewrite": {
"^/api": "" // 路径重写:/api/xxx → http://localhost:8080/mypet/xxx
}
}
}
},
"title": "宠物服务平台-H5版", // H5 页面标题
"router": {
"mode": "hash" // H5 路由模式(默认 hash,避免部署后路径问题)
}
},
// 微信小程序配置(可选:设置导航栏颜色,贴合宠物主题)
"mp-weixin": {
"navigationBarBackgroundColor": "#4CAF50", // 导航栏背景色(绿色,贴合宠物健康主题)
"navigationBarTitleText": "宠物服务平台",
"navigationBarTextStyle": "white", // 导航栏文字颜色
"usingComponents": true // 启用自定义组件(后续会用到)
}
}
关键提醒:
小程序 AppID 申请路径:登录 微信公众平台 → 注册“小程序”账号 → 开发 → 开发设置 → 复制“AppID”;若暂时没有正式 AppID,可使用微信开发者工具的“测试号 AppID”(创建项目时选择“测试号”),但部分功能(如支付)会受限。
3. 第三步:配置 pages.json,实现底部 TabBar
底部 TabBar 是用户切换核心页面的入口,需在
中定义页面路径和 TabBar 样式,步骤如下:
pages.json
(1)打开 pages.json 文件
路径:
C:Users骆Downloadsmy-pet-custommypetsrcmainwebappfrontpages.json
(2)编写 TabBar 配置
替换默认内容为以下代码,包含“首页/宠物/商家/我的”四个 Tab,代码已加注释:
{
"pages": [
// 页面路径配置:每新增一个页面,需在这里注册(路径从 pages 目录开始)
{
"path": "pages/index/index", // 首页路径
"style": {
"navigationBarTitleText": "首页" // 首页导航栏标题
}
},
{
"path": "pages/pet/index", // 宠物页面路径(后续开发宠物列表)
"style": {
"navigationBarTitleText": "宠物"
}
},
{
"path": "pages/shangjia/index", // 商家页面路径(后续开发商家列表)
"style": {
"navigationBarTitleText": "商家"
}
},
{
"path": "pages/mine/index", // 我的页面路径(后续开发个人中心)
"style": {
"navigationBarTitleText": "我的"
}
}
],
// 底部 TabBar 核心配置
"tabBar": {
"color": "#666666", // 未选中 Tab 文字颜色
"selectedColor": "#4CAF50", // 选中 Tab 文字颜色(与导航栏色一致)
"backgroundColor": "#ffffff", // TabBar 背景色(白色,简洁)
"borderStyle": "black", // TabBar 上边框颜色(黑色细边)
"list": [
// 第一个 Tab:首页
{
"pagePath": "pages/index/index", // 对应 pages 中的首页路径
"text": "首页",
// 可选:添加 Tab 图标(建议用 40×40px 的 PNG 图,未选中/选中区分)
"iconPath": "static/icons/home-unselected.png", // 未选中图标路径
"selectedIconPath": "static/icons/home-selected.png" // 选中图标路径
},
// 第二个 Tab:宠物
{
"pagePath": "pages/pet/index",
"text": "宠物",
"iconPath": "static/icons/pet-unselected.png",
"selectedIconPath": "static/icons/pet-selected.png"
},
// 第三个 Tab:商家
{
"pagePath": "pages/shangjia/index",
"text": "商家",
"iconPath": "static/icons/store-unselected.png",
"selectedIconPath": "static/icons/store-selected.png"
},
// 第四个 Tab:我的
{
"pagePath": "pages/mine/index",
"text": "我的",
"iconPath": "static/icons/mine-unselected.png",
"selectedIconPath": "static/icons/mine-selected.png"
}
]
},
"globalStyle": {
// 全局样式:所有页面默认生效
"navigationBarBackgroundColor": "#4CAF50", // 全局导航栏背景色
"navigationBarTextStyle": "white", // 全局导航栏文字颜色
"backgroundColor": "#f5f5f5" // 页面背景色(浅灰,避免刺眼)
}
}
图标配置说明:
若暂时没有图标,可先删除
和
iconPath
配置,TabBar 会只显示文字;图标下载推荐:Iconfont 搜索“首页”“宠物”“商店”等关键词,下载“40×40px”的 PNG 图,放在
selectedIconPath
目录下(需手动创建
front/static/icons
文件夹)。
icons
4. 第四步:跨端预览配置(H5 + 小程序)
Uni-App 支持一键预览到多端,需分别配置 H5 和小程序的预览步骤:
(1)H5 端预览
在 HBuilder X 左侧“项目管理器”中,选中
项目;点击顶部菜单栏 运行 → 运行到浏览器 → 选择任意浏览器(如 Chrome);等待编译完成,浏览器会自动打开 H5 页面,地址通常为
front
(与
http://localhost:8080/
中 H5 端口一致)。
manifest.json
(2)小程序端预览
确保微信开发者工具已启动,且已登录微信账号;在 HBuilder X 中,点击顶部菜单栏 运行 → 运行到小程序模拟器 → 微信开发者工具;HBuilder X 会自动编译项目,并将项目导入微信开发者工具;等待微信开发者工具加载完成,即可看到小程序预览界面。
五、效果验证
1. H5 端验证点
浏览器页面顶部显示“宠物服务平台-H5版”(导航栏标题正确);页面底部显示“首页/宠物/商家/我的”四个 Tab,点击任意 Tab 能正常切换页面(无空白或报错);页面背景色为浅灰色(符合
配置)。
globalStyle
2. 小程序端验证点
微信开发者工具顶部导航栏为绿色,文字为“宠物服务平台”(配置生效);底部 TabBar 文字未选中时为灰色,选中时为绿色(
颜色配置正确);切换 Tab 时无闪退、无控制台报错(控制台可通过“调试器”查看)。
tabBar
六、常见问题与解决方案
问题描述 | 可能原因 | 解决方案 |
---|---|---|
运行到微信开发者工具时,提示“服务端口未开启” | 微信开发者工具未开启“服务端口”,HBuilder X 无法连接 | 1. 打开微信开发者工具 → 点击右上角“设置”图标 → 选择“安全设置”;2. 勾选“服务端口”,关闭微信开发者工具后重新尝试预览 |
小程序预览时提示“AppID 无效” | 中的 不是从微信公众平台申请的有效 ID |
1. 登录微信公众平台,复制“开发设置”中的正式 AppID;2. 替换 中的 ,重新编译预览;3. 测试阶段可使用“测试号 AppID”:微信开发者工具 → 新建项目 → 选择“测试号”,复制测试 AppID |
H5 预览时页面空白,控制台报“404 Not Found” | 中未注册页面,或页面路径写错 |
1. 检查 的 数组,确保“首页/宠物/商家/我的”页面路径正确(如 );2. 确认 目录下存在对应的 文件(如 ) |
切换 Tab 时,小程序报“pages/pet/index.json 未找到” | 宠物页面的 文件缺失(Uni-App 每个页面需有对应的 json 文件) |
1. 打开 目录;2. 新建 文件,写入默认内容: ;3. 其他页面(商家/我的)同理补充 json 文件 |
七、工具类/框架特性拓展
Uni-App 核心配置文件
manifest.json
的作用
manifest.json
是 Uni-App 的“多端配置入口”,除了今天配置的小程序和 H5,还能适配 App(Android/iOS)、支付宝小程序等,核心功能包括:
manifest.json
权限配置:如 App 端需要的“相机权限”(后续宠物头像上传会用到)、“定位权限”(商家位置定位);性能优化:如 H5 端的
(解决跨域)、小程序端的
devServer.proxy
(启用自定义组件);品牌定制:如各端的导航栏颜色、启动页图片(后续可添加宠物主题的启动页)。
usingComponents
后续开发“宠物日志发布页”时,我们会通过
配置“相机权限”,实现拍照上传功能。
manifest.json
八、结语
今天我们完成了 Uni-App 项目的初始化和 TabBar 配置——你的跨端预览是否正常?比如小程序端的 Tab 图标是否显示正确,H5 端切换 Tab 时有没有空白页?
如果遇到“图标错位”“小程序连接失败”等问题,欢迎在评论区分享你的
或
pages.json
关键代码(注意打码 AppID),我们一起排查;如果成功实现跨端预览,也可以晒出你的 H5 或小程序截图,让大家一起参考!
manifest.json
小马绿泡泡:Niuma4G
下期预告
Day5:数据库设计(梳理宠物服务平台核心表结构,如用户表、宠物表、商家表、服务预约表,编写 SQL 脚本初始化数据库,为后续前后端数据交互做准备)。