微信小程序开发学习笔记《20》uni-app框架-分类导航区域与楼层区域

本文介绍了微信小程序开发者如何使用uni-app框架实现分类导航区域的数据获取、渲染以及楼层区域的图片展示,包括生命周期函数、API请求和UI结构的构建。
摘要由CSDN通过智能技术生成

微信小程序开发学习笔记《20》uni-app框架-分类导航区域与楼层区域

博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档

一、分类导航区域

1.1 获取分类导航的数据

实现思路:

  1. 定义data数据
  2. 在onLoad中调用获取数据的方法
  3. 在methods中定义获取数据的方法
<script>
	export default {
		data() {
			return {
				// 1. 分类导航区的数据列表
				navList: [],
			}
		},
		onLoad() { // 声明生命周期函数
			// 2.在小程序页面刚加载的时候,调用获取数据的方法
			this.getNavList()
		},
		methods: {
			// 获取分类导航区域数据的方法
			async getNavList() {
				// 3.1发起请求
				const {
					data: res
				} = await uni.$http.get('/api/public/v1/home/catitems') //这个get封装过了,需要设置一个根路径,(这括号里面的路径都是会和根路径进行拼接的)
				console.log(res)
			
				// 3.2 请求失败
				if (res.meta.status !== 200) return uni.$showMsg()
			
				// 3.3请求成功,为data中的数据赋值
				this.navList = res.message
			},
		},
	}
</script>

1.2 渲染分类导航的UI结构

  1. 定义如下的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>
  1. 通过如下的样式美化页面结构:
.nav-list {
	display: flex;
	justify-content: space-around;
	margin: 15px 0;

	.nav-img {
		width: 128rpx;
		height: 140rpx;
	}
}

最终效果如下:
在这里插入图片描述

二、分类点击跳转页面

  1. 添加点击事件处理函数,并传参
<view class="nav-list"> 
	<!-- @click="navClickHandler(item)添加的点击事件处理函数 -->
	<view class="nav-item" v-for="(item,i) in navList" :key="i" @click="navClickHandler(item)">
		<image :src="item.image_src" class="nav-img"></image>
	</view>
</view>
  1. 定义点击事件处理函数,根据不同的点击参数跳转对应的页面
// 分类导航跳转的方法
navClickHandler(item) {
	// 根据item中的name是什么,进行跳转到对应页面
	if (item.name === '分类') {      //由于分类页面为导航栏页面,所以使用uni.switchTab
		uni.switchTab({
			url:'/pages/cate/cate'
		})
	}
},

三、楼层区域

3.1 获取楼层数据
实现思路:

  1. 定义data数据
  2. 在onLoad中调用获取数据的方法
  3. 在methods中定义获取数据的方法
<script>
	export default {
		data() {
			return {
				// 3.定义楼层区域的数据列表
				floorList: [],
			}
		},
		
		onLoad() { // 声明生命周期函数
			// 在小程序页面刚加载的时候,调用获取数据的方法
			this.getFloorList()
		},
		
		methods: {
		
			// 获取楼层区域数据的方法
			async getFloorList() {

				// 3.1发起请求
				const {
					data: res
				} = await uni.$http.get('/api/public/v1/home/floordata')
				console.log(res)

				// 3.2 请求失败
				if (res.meta.status !== 200) return uni.$showMsg()

				// 3.3请求成功,为data中的数据赋值
				this.floorList = res.message
			},
		},
	}
</script>

发现了吗,获取数据的套路都是一样的,先定义数据,然后发请求。

四、渲染楼层的标题

  1. 定义如下的UI结构:
<!--楼层区域-->
<view class="floor-list">
	<view class="floor-item" v-for="(item,i) in floorList" :key="i">
		<image :src="item.floor_title.image_src" class="floor-title"></image>
	</view>
</view>
  1. 美化楼层标题UI结构
// 楼层标题样式
.floor-title{
	display: flex;
	width: 100%;
	height: 60rpx;
}

有没有发现循环渲染也就是套路罢了,都可以一样。

五、渲染楼层里的图片

  1. 定义楼层图片区域的UI结构:
<!-- 楼层的具体图片区域 -->
<view class="floor-item-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>
		<!-- :style="{width:item.product_list[0].image_width + 'rpx'}" 动态绑定样式  mode="widthFix" 宽度自适应-->
	</view>

	<!-- 楼层右4小图区域 -->
	<view class="right-img-box">
		<view class="right-img-item" v-for="(item2,i2) in item.product_list" :key="i2" v-if="i2 != 0">
			<image :src="item2.image_src"
				:style="{width:item2.image_width + 'rpx'}" mode="widthFix"/>
			</image>
		</view>
	</view>

</view>
  1. 美化UI结构
// 楼层区域标题样式
.floor-title {
	display: flex;
	width: 100%;
	height: 60rpx;
}
// 楼层区域右图片样式
.right-img-box{
	display: flex;
	flex-wrap: wrap;   // 横向对齐
}
// 楼层区域整体布局样式
.floor-item-box{
	display: flex;
}

最终效果如图:
在这里插入图片描述

以上学习笔记都是博主在B站学习黑马程序员课程时的学习笔记,如果有什么问题,烦请联系我删除。

  • 30
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Uniapp 是一种基于Vue.js的跨平台开发框架,可用于开发原生应用、小程序和H5等多个平台的应用程序。在进行uniapp分类导航时,我们可以采用以下几种方式来实现。 首先,可以使用uni-app框架自身提供的组件来实现分类导航。例如,可以使用uni-app的tabBar组件来创建一个底部导航栏,通过标签页的方式进行分类导航。通过在不同的标签页中展示不同的页面内容,用户可以快速切换不同的分类进行浏览。 其次,可以利用uni-app的路由功能来实现分类导航。通过创建不同的路由页面,每个页面对应一个分类,用户点击相应的分类后,跳转到对应的页面进行浏览。同时,可以在导航页面中添加筛选功能,让用户可以进一步细化选择,以便更快地找到所需内容。 此外,还可以通过使用uni-app导航栏组件来实现分类导航导航栏通常位于页面的顶部,通过在导航栏中添加不同的分类按钮,用户可以点击按钮来进行分类浏览。同时,为了增强用户体验,可以使用uni-app提供的下拉刷新组件,在页面中添加下拉刷新功能,方便用户获取最新的分类内容。 总之,uniapp是一种非常灵活和强大的开发框架,可以通过其提供的组件和功能来实现不同形式的分类导航,以满足不同项目的需求。无论是底部导航栏、路由导航还是顶部导航栏,uni-app都能提供相应的方案来实现分类导航功能。可以根据具体项目的需求和设计风格选择适合的导航方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tutgxuzyj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值