商城小程序开发2

一、轮播图

1、配置网络请求

在这里插入图片描述
在main.js中配置网络请求服务

//导入网络请求的包
import { $http } from '@escook/request-miniprogram'

//将请求函数挂载到uni上的自定义属性上,方便全项目引用
uni.$http = $http

//请求拦截器
$http.beforeRequest = function(options) {
	uni.showLoading({
		title:'数据加载中。。。'
	})
}

//相应拦截器
$http.afterRequest = function() {
	uni.hideLoading()
}

2、请求轮播图数据

轮播图的后端接口以及返回数据
在这里插入图片描述

在main.js中配置网络请求的基础域名(后端请求的基础域名)
在这里插入图片描述
前端返回数据:
1.data中定义返回值数据 : swiperList
2.调用生命周期函数获取数据: onload
3.创建调用网络请求的方法:methods下定义相关函数 getswiperlist
在这里插入图片描述
const{ data : res }

应为返回的是名叫data的值,我们把data重新命名为res

其中meta下的status表示获取成功,否则失败可以做一个判断函数
在这里插入图片描述
在这里插入图片描述
这里可以了解一个知识 async 与 await(通常为一起使用)

uni.async函数的作用是创建一个异步函数

在上述代码中,我们使用了async关键字来定义一个异步函数,函数中使用了await关键字,表示要等待uni.$http请求函数执行完毕,并将结果赋值给res变量,最后返回res.data的值。

问题

vue3可能导致http请求挂载不上去
在这里插入图片描述
可以修改函数 直接请求后端地址,并添加方法
在这里插入图片描述

3、渲染轮播图的ui结构

直接打uSwiper会直接出现轮播图的模版,自己修改就能完成轮播图

在这里插入图片描述

<template>
	<view>
		<!--轮播图的区域-->
		<!--indicator-dots=轮播图下的小圆点 :autoplay=自动轮播 :interval=轮播时间间隔 :duration=每张轮播的时间  :circular=衔接滚动-->
		<swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
			<!--循环创建轮播图-->
			<swiper-item v-for="(item, i) in swiperList" :key="i">
				<view class="swiper-item">
					<image :src="item.image_src"></image>
				</view>
			</swiper-item>
		</swiper>
	</view>
</template>
<style lang="scss">
	swiper {
		height: 330rpx;

		.swiper-item,
		image {
			width: 100%;
			heigh: 100%;
		}
	}
</style>

4、轮播图点击进入商品详情页面

1.设置分包

现在pages.json页面创建分包设置,不需要路径(一定要保存)
在这里插入图片描述
根目录下创建subpkg文件,并创建gooddetail页面,设置分包subpkg
在这里插入图片描述

2.点击设置

在这里插入图片描述
在这里插入图片描述

3.封装返回值

在这里插入图片描述
在这里插入图片描述

二、分类导航

1、获取导航栏数据

在这里插入图片描述
在这里插入图片描述

2、渲染分类导航栏ui

home.vue下首页页面下添加分类导航栏区域

定义如下ui结构

		<!--分类导航栏区域-->
		<view class="nav-list">
			<view class="nav-item" v-for="(item, i) in navList" :key="i">
				<image :src="item.image_src" class="nav-img"</image>
			</view>
		</view>

通过如下的样式美化

	.nav-list{
		display: flex;
		justify-content: space-around;
		margin: 15px 0;
		
		.nav-img{
			width: 128rpx;
			height: 140rpx;
		}
	}

在这里插入图片描述

3、点击跳转分类页面

在这里插入图片描述
主要用到 uni.switchTab api直接跳转tabBar页面
在这里插入图片描述

三、楼层区域

1、获取楼层数据

与上面获取轮播图,导航栏设计思路一样
在这里插入图片描述

2、渲染楼层标题

在这里插入图片描述

4、渲染楼层中的图片

1.定义ui结构

		<view class="floor-list">
			<!--每一层楼的item项-->
			<view class="floor-item" v-for="(item, i) in floorList" :key="i">
				<!--楼层的标题-->
				<image :src="item.floor_title.image_src" class="floor-title"></image>
				<!--楼层图片区域-->
				<view class="floor-img-box">
					<!--左侧大图片的盒子-->
					<view class="left-img-box">
						<image :src="item.product_list[0].image_src" :style="{width: item.product_list[0].image_width + 'rpx'}" mode="widthFix"></image>
					</view>
					<!--右边小图片的盒子-->
					<view class="right-img-box">
						<view class="right-img-item" v-for="(item2, i2) in item.product_list" :key="i2">
							<template v-if="i2 !== 0">
								<image :src="item2.image_src" :style="{width: item2.image_width + 'rpx'}" mode="widthFix"></image>
							</template>
						</view>
					</view>
				</view>
			</view>
		</view>

2.美化页面

	.floor-title{
		width: 100%;
		height: 60rpx;
	}
	
	.right-img-box{
		display: flex;
		flex-wrap: wrap;
		justify-content: space-around;
	}
	
	.floor-img-box{
		display: flex;
		padding-left: 10rpx;
	}

4、楼层图片跳转链接

1.创建subpkg分包
在这里插入图片描述
因为封装的数据类型返回路径和我们分包的前端路径不一样,所以需要重新处理数据中的路径值

在这里插入图片描述

在这里插入图片描述
第三步:修改为navigator标签,绑定我们的新链接
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值