黑马 小兔鲜儿 uniapp 小程序开发- 推荐模块- day03_软工菜鸡的博客-CSDN博客
本课程是全网首套用 vue3 加 TS 写的 uniapp 项目, 里面大量封装自己的组件库,课程从 uni-app 基础入手,按照9大电商业务模块逐步实现完整的电商购物流程业务;涵盖了猜你喜欢、热门推荐、商品分类、商品详情、微信登录、用户管理、地址管理、购物车管理、订单管理等功能。包含微信登录,微信支付等业务。一套代码多端全面覆盖微信小程序端、H5端、APP端。
学完本课程能够收获:使用 uni-app + Vue3 开发中型项目的能力
用户点击左菜单的一级分类,切换右侧对应的二级分类和商品。
参考效果
商品分类页中的广告位,可复用之前定义的轮播图组件 XtxSwiper
。
静态结构
商品分类页静态结构: src/pages/category/category.vue
女靴
居家
宠物用品
全部
木天蓼逗猫棍
¥
16.00
接口调用
渲染轮播图数据业务功能对于前端来说比较简单,只需调用后端提供的接口将获得的数据展现。
注意:传递参数 2 标识获取商品分类页广告。
接口地址:/home/banner
请求方式:GET
请求参数:
Query:
字段名称 |
是否必须 |
默认值 |
备注 |
distributionSite |
否 |
1 |
活动 banner 位置,1 代表首页,2 代表商品分类页,默认为 1 |
该接口同时包含一级分类和二级分类数据,二级分类数据需要先对数据进行处理,再进行渲染。
接口调用
接口地址:/category/top
请求方式:GET
请求参数:无
请求封装
// src/services/category.ts
/**
* 分类列表-小程序
*/
export const getCategoryTopAPI = () => {
return http({
method: 'GET',
url: '/category/top',
})
}
类型声明
// src/types/category.d.ts
import type { GoodsItem } from './global'
/** 一级分类项 */
export type CategoryTopItem = {
/** 二级分类集合[ 二级分类项 ] */
children: CategoryChildItem[]
/** 一级分类id */
id: string
/** 一级分类图片集[ 一级分类图片项 ] */
imageBanners: string[]
/** 一级分类名称 */
name: string
/** 一级分类图片 */
picture: string
}
/** 二级分类项 */
export type CategoryChildItem = {
/** 商品集合[ 商品项 ] */
goods: GoodsItem[]
/** 二级分类id */
id: string
/** 二级分类名称 */
name: string
/** 二级分类图片 */
picture: string
}
接下来,先把一级分类数据结合模板语法渲染到页面中。
当用户点击一级分类时,需要高亮显示,即给它添加 .active
类名即可。
{{ item.name }}
商品二级分类是从属于某个一级分类的,通过 computed
配合高亮下标提取当前二级分类数据。
{{ item.name }}
全部
{{ goods.name }}
¥
{{ goods.price }}
提取当前二级分类数据后,剩下的就是列表渲染。
参考效果
实现步骤参考首页的骨架屏。
商品分类页
女靴
{{ item.name }}
{{ item.name }}
全部
{{ goods.name }}
¥
{{ goods.price }}