赞
踩
博主正在学习微信小程序开发,希望记录自己学习过程同时与广大网友共同学习讨论。建议仔细阅读uni-app对应官方文档
实现思路:
<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>
<!--分类导航区域-->
<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;
}
}
最终效果如下:
<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>
// 分类导航跳转的方法
navClickHandler(item) {
// 根据item中的name是什么,进行跳转到对应页面
if (item.name === '分类') { //由于分类页面为导航栏页面,所以使用uni.switchTab
uni.switchTab({
url:'/pages/cate/cate'
})
}
},
3.1 获取楼层数据
实现思路:
<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>
发现了吗,获取数据的套路都是一样的,先定义数据,然后发请求。
<!--楼层区域-->
<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>
// 楼层标题样式
.floor-title{
display: flex;
width: 100%;
height: 60rpx;
}
有没有发现循环渲染也就是套路罢了,都可以一样。
<!-- 楼层的具体图片区域 --> <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>
// 楼层区域标题样式
.floor-title {
display: flex;
width: 100%;
height: 60rpx;
}
// 楼层区域右图片样式
.right-img-box{
display: flex;
flex-wrap: wrap; // 横向对齐
}
// 楼层区域整体布局样式
.floor-item-box{
display: flex;
}
最终效果如图:
以上学习笔记都是博主在B站学习黑马程序员课程时的学习笔记,如果有什么问题,烦请联系我删除。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。