uniapp商城之首页模块

news/2025/2/22 0:11:48/

文章目录

  • 前言
  • 一、自定义导航栏
    • 1.静态结构
    • 2.修改页面配置
    • 3.组件安全区适配
  • 二、通用轮播组件
    • 1. 静态结构组件
    • 2.自动导入全局组件
    • 3.首页轮播图数据获取
  • 三、首页分类
    • 1.静态结构
    • 2.首页获取分类数据并渲染
  • 四、热门推荐
    • 1.静态结构
    • 2.首页获取推荐数据并渲染
    • 3.首页跳转详细推荐页
  • 五、猜你喜欢
    • 1.静态结构
    • 2.核心业务
  • 六、下拉刷新
  • 七、骨架屏


前言

主要涉及到组件通信、组件自动导入、数据渲染、触底分页加载、下拉刷新等。
在这里插入图片描述


一、自定义导航栏

自定义导航栏的样式需要适配不同的机型。
在这里插入图片描述
操作步骤

  1. 准备组件静态结构
  2. 修改页面配置,隐藏默认导航栏,修改文字颜色
  3. 样式适配 —> 安全区域

1.静态结构

src/pages/index/components/CustomNavbar.vue在这里插入图片描述

2.修改页面配置

// src/pages.json
{"path": "pages/index/index","style": {"navigationStyle": "custom", // 隐藏默认导航"navigationBarTextStyle": "white","navigationBarTitleText": "首页"}
}

3.组件安全区适配

不同手机的安全区域不同,适配安全区域能防止页面重要内容被遮挡。
通过uni.getSystemInfoSync()获取屏幕边界到安全区的距离。
在这里插入图片描述
在这里插入图片描述

二、通用轮播组件

在该项目中,总共有两处广告位,分别位于【首页】和 【商品分类页】。
轮播图组件需要在首页和分类页使用,需要封装成通用组件。

1. 静态结构组件

首页广告布局为独立的组件XtxSwiper,位于src/components目录中。
该组件定义了list属性接收外部传入的数据,内部通过小程序内置组件swiper展示首页广告的数据。
在这里插入图片描述

2.自动导入全局组件

全局组件类型声明
Volar插件说明:Vue Language Tools
在这里插入图片描述
自动导入配置
在这里插入图片描述

3.首页轮播图数据获取

接口封装

// 存放路径: src/services/home.ts
import type { BannerItem } from '@/types/home'/*** 首页-广告区域-小程序* @param distributionSite 广告区域展示位置(投放位置 投放位置,1为首页,2为分类商品页) 默认是1*/
export const getHomeBannerAPI = (distributionSite = 1) => {return http<BannerItem[]>({method: 'GET',url: '/home/banner',data: {distributionSite,},})
}

类型声明

// 存放路径:src/types/home.d.ts
/** 首页-广告区域数据类型 */
export type BannerItem = {/** 跳转链接 */hrefUrl: string/** id */id: string/** 图片链接 */imgUrl: string/** 跳转类型 */type: number
}

数据渲染
在这里插入图片描述
在这里插入图片描述

三、首页分类

1.静态结构

前台类目布局为独立的组件 CategoryPanel 属于首页的业务组件,存放到首页的components目录中。
在这里插入图片描述

2.首页获取分类数据并渲染

接口封装

// services/home.ts
/*** 首页-前台分类-小程序*/
export const getHomeCategoryAPI = () => {return http<CategoryItem[]>({method: 'GET',url: '/home/category/mutli',})
}

数据类型

/** 首页-前台类目数据类型 */
export type CategoryItem = {/** 图标路径 */icon: string/** id */id: string/** 分类名称 */name: string
}

页面渲染
在这里插入图片描述
在这里插入图片描述

四、热门推荐

后端根据用户的消费习惯等信息向用户推荐一系列商品,前端负责将这些商品展示给用户。

1.静态结构

热门推荐布局为独立的组件HotPanel,属于首页的业务组件,存放到首页的components目录中。

<script setup lang="ts">
//
</script><template><!-- 推荐专区 --><view class="panel hot"><view class="item" v-for="item in 4" :key="item"><view class="title"><text class="title-text">特惠推荐</text><text class="title-desc">

http://www.ppmy.cn/news/1572848.html

相关文章

SpringBoot实战:高效获取视频资源

文章目录 前言技术实现SpringBoot项目构建产品选取配置数据采集 号外号外 前言 在短视频行业高速发展的背景下&#xff0c;海量内容数据日益增长&#xff0c;每天都有新的视频、评论、点赞、分享等数据涌现。如何高效、精准地获取并处理这些庞大的数据&#xff0c;已成为各大平…

Spring Cloud — 微服务容错保护 Hystrix入门

微服务之间是通过网络进行相互调用&#xff0c;如果单个服务出现问题&#xff0c;用户调用相关服务时或造成调用延迟或失败&#xff0c;进而可能让整个系统奔溃。提前做好应急措施&#xff0c;当遇到问题时&#xff0c;可及时启动应急方案&#xff0c;让系统进行自我调节和保护…

小蓝相机HDR拍照流程分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: HDR 场景下发 3 帧拍照请求HDR 3帧拍照请求帧&#xff08;478,479 480&#xff09;HDR 3帧 result callback帧HDR 算法处理算法编解码处理HDR 拍照log关…

el-table封装一个自定义列配置表格组件(vue3开箱即用)

组件核心功能 拖拽排序&#xff08;使用 vuedraggable&#xff09; 显示/隐藏控制 列宽调整 列固定状态记忆 搜索过滤列 本地存储&#xff08;localStorage&#xff09;可改成接口保存 默认配置恢复 通过 searchText 动态过滤列。 安装拖拽依赖 npm install vuedragg…

vscode环境搭建

目录 一、安装VSCode 二、安装Python 三、安装Anaconda&#xff08;可选&#xff0c;但推荐&#xff09; 四、安装深度学习相关库 五、配置VSCode 六、 结果可视化 一、安装VSCode 访问官网下载&#xff1a;从VSCode官方网站下载适合你操作系统的安装包。安装&#xff1a;运行安…

PrimeFaces实战:IdleMonitor与Ajax的完美结合

在现代的Web开发中&#xff0c;用户交互的实时反馈是一个重要的用户体验环节。PrimeFaces作为一个强大的Java EE UI库&#xff0c;提供了许多便捷的功能组件&#xff0c;其中之一就是IdleMonitor。通过IdleMonitor&#xff0c;我们可以轻松地检测用户何时处于空闲状态以及何时从…

Bug日记:Linux中systemctl restart network失败问题,网络故障

日期 2023年10月25日 问题描述 在尝试使用 systemctl restart network 重启网络服务时&#xff0c;出现以下错误&#xff1a; Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and …

CTFHub技能树-密码口令wp

目录 引言弱口令默认口令 引言 仅开放如下关卡 弱口令 通常认为容易被别人&#xff08;他们有可能对你很了解&#xff09;猜测到或被破解工具破解的口令均为弱口令。 打开环境&#xff0c;是如下界面&#xff0c;尝试一些弱口令密码无果 利用burpsuite抓包&#xff0c;然后爆…