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

微信小程序开发学习笔记《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站学习黑马程序员课程时的学习笔记,如果有什么问题,烦请联系我删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/430964.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

smardaten数据报表功能全新上线,迎战“中国式报表”!

数据报表是企业业务数据统计分析最主要的应用方式之一。 面对复杂多元的报表结构、大量的数据处理需求时&#xff0c;“中国式报表”依然是业务人员、特别是财务人员进行数据统计分析的主要方式。虽然绝大多数企业都已部署高效的BI平台&#xff0c;但报表统计与可视化BI之间的…

电源完整性设计的重要三步!

电源模块布局布线 电源模块是电子设备的能量来源&#xff0c;其性能与布局直接影响到整个系统的稳定性和效率。正确的布局和走线不仅能减少噪声干扰&#xff0c;还能确保电流的顺畅流通&#xff0c;从而提高整体性能。 1、电源模块布局 ● 源头处理&#xff1a;电源模块作为…

解决手机连接校园网同一设备老是需要重复认证的问题(+解决原理)

相信大家平时在使用校园网的时候总会遇到同一设备隔三岔五就要重复认证绑定的问题&#xff0c;这里直接附上解决方案。 打开手机的wifi-->连接校园网然后进入设置-->在隐私选项选择“使用设备MAC” 如下图&#xff0c;问题解决了&#xff01;如果想知道原理的可以继续往…

通过docker安装Mongodb

通过Docker安装MongoDB非常简单和方便&#xff0c;以下是基本步骤&#xff1a; 拉取MongoDB镜像&#xff1a; 首先确保你已经在本地机器上安装了Docker。然后&#xff0c;在命令行中执行以下命令来从Docker Hub下载官方的MongoDB镜像&#xff08;这里以最新版本为例&#xff09…

Java基础(5) 泛型 日期和时间 线程 File-输入流

泛型 java的泛型有点像ts的泛型 public class ArrayList<T> {private T[] array;private int size;public void add(T e) {...}public void remove(int index) {...}public T get(int index) {...} }// 创建可以存储String的ArrayList: ArrayList<String> strLis…

FIFO漫谈

文章目录 目录 概要 整体架构流程 技术名词解释 技术细节 为什么需要FIFO&#xff1f; 小结 概要 FIFO&#xff0c;全称为First-In, First-Out&#xff0c;意为先进先出。它就像是一个排队买东西的队伍&#xff0c;第一个进入队伍的人会第一个离开队伍。在芯片中&#xff0c;F…

数据库SQLite

1.简单创建一个数据库和删除一个数据库 <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:orientation"vertical">&l…

Spring基础——XML配置Bean的依赖注入

目录 什么是依赖注入依赖的解析 Spring提供的两种注入方式1. 基于构造器的赖注入1.1 通过类型注入1.2 通过索引注入1.3 通过参数名注入1.4 通过静态工厂方法参数注入 基于Setter的依赖注入 Spring对不同类型的注入方式1. 字面值&#xff08;String&#xff0c;基本类型&#xf…

“而且,再加上”可以用哪个语法来表示,柯桥考级韩语学习

语法 --는/은/ㄴ 데다가 1.语法&#xff1a;는/은/ㄴ 데다가 2.表示&#xff1a;用于谓词词干和体词谓词形后, 表示在原有的状况上再加上其他情况。 3.添加&#xff1a; 4.例句&#xff1a; 当然&#xff0c;与这个语法含义相近的还有不少语法&#xff0c;有一部分是初级暂时…

网络安全: Kali Linux 使用 hping3 阻塞目标主机

目录 一、实验 1.环境 2. 物理机测试远程连接 Windows server 3.Kali Linux 使⽤ hping3 ⼯具 二、问题 1. 常见的 DoS ⽅式有哪些 2.hping3 测试⼯具的命令格式和选项参数 一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 系统版本IP备注Kali Linux2024.…

洗地机怎么选?2024年洗地机推荐,希亦、添可、追觅、石头哪一款清洁力更好?

洗地机是一款可以一遍搞定扫地和拖地一系列动作的清洁神奇&#xff0c;它能让我们真实的感受到打扫屋子是一件很减压的事情&#xff0c;但是目前市面上的洗地机太多了&#xff0c;大家都不知道怎么样的才算好&#xff0c;希亦、添可、追觅、石头洗地机值不值得买&#xff1f;我…

用边缘计算网关解决离散行业数采问题-天拓四方

一、引言 随着工业4.0时代的来临&#xff0c;离散制造行业正面临数字化转型的关键节点。离散制造的特点是小批量、多品种、高复杂度&#xff0c;如何实现高效、精准的数据采集与分析&#xff0c;提升生产效率和产品质量&#xff0c;成为行业亟待解决的问题。边缘计算网关作为一…

python数据类型及转换

一、数据类型 数据类型分为数值型、布尔型、字符串型等 1.1数值类型 数值类型可以分为整数类型、浮点数类型、复数类型 1.1.1整数类型 (1)概念&#xff1a;整数类型指数值是没有小数部分的&#xff0c;包含正整数、负整数和0 (2)进制种类&#xff1a;十进制--->234、5…

Lichee Pi 4A:RISC-V架构的开源硬件之旅

一、简介 Lichee Pi 4A是一款基于RISC-V指令集的强大Linux开发板&#xff0c;它凭借出色的性能和丰富的接口&#xff0c;吸引了众多开发者和爱好者的关注。这款开发板不仅适用于学习和研究RISC-V架构&#xff0c;还可以作为软路由、小型服务器或物联网设备的核心组件。 目录 一…

【pyinstaller打包记录】Linux系统打包可执行文件后,onnxruntime报警告(Init provider bridge failed)

简介 PyInstaller 是一个用于将 Python 程序打包成可执行文件&#xff08;可执行程序&#xff09;的工具。它能够将 Python 代码和其相关的依赖项&#xff08;包括 Python 解释器、依赖的模块、库文件等&#xff09;打包成一个独立的可执行文件&#xff0c;方便在不同环境中运行…

tomcat安装及jdk安装

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器&#xff0c;属于轻量级应用服务器&#xff0c;在中小型系统和并发访问用户不是很多的场合下被普遍使用&#xff0c;是开发和调试JSP 程序的首选。对于一个初学者来说&#xff0c;可以这样认为&#xff0c;当在一台机器上配…

Android 拍照本地图片选择框架适配

前言 通常技术方案的选择、会带来后续一些不可控的东西&#xff0c;这也是没法避免的&#xff0c;程序开发者中同时面对、测试、领导、产品各种要求。同时在网络上查找的资料也只是很旧的&#xff0c;不一定适合新设备&#xff0c;需要推倒重新弄 1、解决方案通过意图选择器做…

Git 远程仓库之Github

目前我们使用到的 Git 命令都是在本地执行&#xff0c;如果你想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。 目前最出名的代码托管平台是Github&#xff0c;我们将使用了 Github 作为远程仓库。 添加远程库 要添…

C#与VisionPro联合开发——单例模式

单例模式 单例模式是一种设计模式&#xff0c;用于确保类只有一个实例&#xff0c;并提供一个全局访问点来访问该实例。单例模式通常用于需要全局访问一个共享资源或状态的情况&#xff0c;以避免多个实例引入不必要的复杂性或资源浪费。 Form1 的代码展示 using System; usi…

关于V5版本的echarts的引导线标签文字存在描边问题

1.如果存在描边&#xff1a;&#xff08;如图所示&#xff0c;炒鸡难受好吧&#xff0c;也不知道官方为什么这样初始化&#xff09; 2.只需在series的label中配置color:#FFF即可