if - else 实现点击展开 / 折叠

             在前端开发过程中,我们经常需要使用到点击展开/折叠的按钮。

        此案例是一个数组嵌套数组的效果展示,使用的是v-if    else 来实现的展开效果。

一、实现方法

          if...else:当指定条件为真,if 语句会执行一段语句。如果条件为假,则执行另一段语句。

二、实现步骤

要实现点击展开的效果,我们需要做以下几个步骤:

        1.在HTML中定义一个按钮和需要展开或折露的内容

        2.使用JQuery选择器选中按钮,并绑定点击事件处理函数

        3.在点击事件处理函数中,切换内容的显示状态

①在view中添加如下代码
<template>
	<view style="">
		<view style="padding: 32rpx 0rpx 10rpx;border-top: 1px solid #E6E6E8; margin-top: 100rpx;">
			<!-- 绑定点击事件  @click="handleClick(index) -->
			<view v-for="(items, index) in positionData" style="padding: 32rpx; background-color: #fff;" :key="index"
				@click="handleClick(index)">
				<!-- 转动小图标 使用的时 if- else  -->
				<view class="flex">
					<view><text style="font-weight: bold;font-size: 30;">{{ items.mothes }}</text> 月</view>
					<u-icon v-if="!items.unfold" name="arrow-down-fill" size="10"></u-icon>
					<u-icon v-else name="arrow-up-fill" size="10"></u-icon>
				</view>
				<view v-if="items.unfold">
					<!-- 不能这样写 v-if 和 v-for同时写一个元素上 -->
					<view v-for="(item, index2) in items.data" class="flex-between"
						style="padding: 32rpx 0rpx;border-bottom: 1px solid #E6E6E8;" :key="index2">
						<view class="flex-colomn">
							<view style="color: #333333;font-size: 28rpx;font-weight: bold;">{{ item.status }}</view>
							<view style="color: #888889;font-size: 24rpx;">{{ item.time }}</view>
						</view>
						<view style="color: #222229;font-size: 32rpx; font-weight: bold;">{{ item.sasay }}</view>
					</view>
					<view>
					</view>
				</view>
			</view>
		</view>
		</view>
</template>

②在Js中添加
<script>
export default {
	data() {
		return {
			//数组嵌套数组
			positionData: [
				{
					id: '1',
					mothes: '11',
					allsasay: "10000",
					data: [{
						status: '微信充值',
						time: '2023-11-11 20:00',
						sasay: '+500',
					},
					{
						status: '微信充值',
						time: '2023-11-11 20:00',
						sasay: '+500',
					},{
						status: '微信充值',
						time: '2023-11-11 20:00',
						sasay: '+500',
					},{
						status: '微信提现',
						time: '2023-11-11 20:00',
						sasay: '+500',
					},{
						status: '微信充值',
						time: '2023-11-11 20:00',
						sasay: '+500',
					},
					],
					unfold: false //添加的元素
				},
			],

		}
	},
	methods: {
		//点击事件的方法 
		//.map()方法创建一个新数,这个新数组由原数组中的每个元素都调用一次提供的函数后的返回值组成。
		handleClick(index) {
			this.positionData = this.positionData.map((it, i) => {
				if (index === i) {
					return {
						...it, //展开运算符 【把it对象里面的属性全部列举在这里】
						unfold: !it.unfold
					}
				} else {
					return it
				}
			})
		}
	}
}
</script>
③css样式
<style>
	/* 背景颜色 */
page {
	background: #f5f5f5;
}
</style>

三、效果展示

四、小结

        1.当v-if 和 v-for 需要同时使用时,不可以写在一个标签上,需要写在不同的view上

        2.v-if指令用于条件性的渲染一块内容,这块内容只会在指令的表达式返回true值的时候被渲染。vue的列表渲染函数,函数内部都会进行一次if判断

        
        3.v-for指令是基于一个数组来渲染一个列表。v-for指令需要使用item in items形式的特殊语法,items是源数据数组或对象,而item则是被迭代的数组元素的别名。
        在使用v-for的时候,可以设置key值,并且保证每个key值是独一无二的。

        4.永远不要把v-if和v-for同时用在同一个元素上,(每次渲染都会先循环再进行条件判断)。


        5.可以在外层嵌套template(页面渲染不生成dom节点),在这一层进行v-if判断,然后在内部进行v-for循环。

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

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

相关文章

【BI】FineBI功能学习路径-20231211

FineBI功能学习路径 https://help.fanruan.com/finebi/doc-view-1757.html 编辑数据概述 1.1 调整数据结构 1.2 简化数据 2.1上下合并 2.2其他表添加列 2.3左右合并 新增分析指标 函数参考 https://help.fanruan.com/finereport/doc-view-1897.html 数值函数 日期函数 文…

ESP8266模块(CH340)零基础实战

USB数据线连接ESP8266模块到电脑 先按住FLASH键,再按一下RST键,然后松开 此时电脑可识别出CH340 COM接口 CH340芯片厂商网址: wch.cn 传输比特率9600 win11自带驱动 下载Arduino IDE

动态规划:区间dp

让字符串成为回文串的最少插入次数 暴力递归 int f1(string s, int l, int r) {if (l r)return 0;if (l 1 r)return s[l] s[r] ? 0 : 1;if (s[l] s[r])return f1(s, l 1, r - 1);elsereturn min(f1(s, l, r - 1), f1(s, l 1, r)) 1; } 记忆化搜索 const int N5555;…

mysql 链接超时的几个参数详解

mysql5.7版本中&#xff0c;先查看超时设置参数&#xff0c;我们这里只关注需要的超时参数&#xff0c;并不是全都讲解 show variables like %timeout%; connect_timeout 指的是连接过程中握手的超时时间,在5.0.52以后默认为10秒&#xff0c;之前版本默认是5秒&#xff0c;主…

洛谷 P8794 [蓝桥杯 2022 国 A] 环境治理

文章目录 [蓝桥杯 2022 国 A] 环境治理题目链接题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 提示 思路解析CODE给点思考 [蓝桥杯 2022 国 A] 环境治理 题目链接 https://www.luogu.com.cn/problem/P8794 题目描述 LQ 国拥有 n n n 个城市&#xff0c;从 0 0 …

【开源】基于JAVA的木马文件检测系统

项目编号&#xff1a; S 041 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S041&#xff0c;文末获取源码。} 项目编号&#xff1a;S041&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 木马分类模块2.3 木…

利用python将data:image/jpg; base64,格式数据转化下载为图片

在做爬虫爬取图片时&#xff0c;发现有的图片url是用“data:image/jpg;base64” 开头的&#xff0c;例如下图 部分开头样式如下&#xff1a; 1、data:image/jpg; base64, 2、data:image/png; base64, 3、data:image/webp;base64, 利用python进行代码进行图片下载&#xff0c;…

JDK多版本集成 Jacoco 配置指南

JDK多版本集成 Jacoco 配置指南 本篇相关 JDK 版本配置如下&#xff1a; JDK8 JDK11 JDK17 Jacoco 是什么 Jacoco 是一个用于Java程序的代码覆盖率报告工具。它通过动态分析&#xff08;在代码执行时收集数据&#xff09;来生成代码覆盖率报告文件。Jacoco 支持多种覆盖率标…

Docker | 自定义网络

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容: Docker | 自定义网络 📚个人知识库: 知识库,欢迎大家访问 1.前言 大家好,我是Leo哥…

【K8s】Kubernetes CRD 介绍(控制器)

文章目录 CRD 概述1. 操作CRD1.1 创建 CRD1.2 操作 CRD 2. 其他笔记2.1 Kubectl 发现机制2.2 校验 CR2.3 简称和属性 3. 架构设计3.1 控制器概览 参考 CRD 概述 CR&#xff08;Custom Resource&#xff09;其实就是在 Kubernetes 中定义一个自己的资源类型&#xff0c;是一个具…

three.js 入门三:buffergeometry贴图属性(position、index和uvs)

环境&#xff1a; three.js 0.159.0 一、基础知识 geometry&#xff1a;决定物体的几何形状、轮廓&#xff1b;material&#xff1a;决定物体呈现的色彩、光影特性、贴图皮肤&#xff1b;mesh&#xff1a;场景中的物体&#xff0c;由geometry和materia组成&#xff1b;textu…

【MySQL系列】Centos安装MySQL

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

电镀污水处理设备有哪些

电镀污水处理设备是用来处理电镀过程中产生的废水&#xff0c;并将废水中的有害物质去除&#xff0c;使其达到排放标准的设备。通常&#xff0c;电镀污水处理设备包括以下几种类型&#xff1a; 1. 预处理设备&#xff1a;预处理设备通常包括过滤器、物理方法和化学方法等。过滤…

智能优化算法应用:基于混合蛙跳算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于混合蛙跳算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于混合蛙跳算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.混合蛙跳算法4.实验参数设定5.算法结果6.…

Android集成科大讯飞语音识别与语音唤醒简易封装

目录 一、语音唤醒部分 1、首先在科大讯飞官网注册开发者账号 2、配置唤醒词然后下载sdk 3、选择对应功能下载 4、语音唤醒lib包全部复制到工程目录下 5、把语音唤醒词文件复制到工程的assets目录 6、复制对应权限到AndroidManifest.xml中 7、唤醒工具类封装 二、语音识…

Java第二十一章

网络程序设计基础 局域网与互联网 为了实现两台计算机的通信&#xff0c;必须用一个网络线路连接两台计算机。如下图所示 网络协议 1.IP协议 IP是Internet Protocol的简称&#xff0c;是一种网络协议。Internet 网络采用的协议是TCP/IP协议&#xff0c;其全称是Transmissio…

node.js express cors解决跨域

目录 什么是跨域 示例 postman请求 前端请求 cors中间件解决跨域 流程 配置cors参数 什么是跨域 跨域&#xff08;Cross-Origin&#xff09;是指在 Web 开发中&#xff0c;当一个网页的源&#xff08;Origin&#xff09;与另一个网页的源不同时&#xff0c;就发生了跨域…

【USRP】LFTX / LFRX

LFTX/LFRX 设备概述 LFTX 子板利用两个高速运算放大器来允许 0-30 MHz 的传输。该板仅接受实模式信号。LFTX 非常适合 HF 频段的应用&#xff0c;或使用外部前端来上变频和放大中间信号的应用。LFTX 的输出可以独立处理&#xff0c;也可以作为单个 I/Q 对进行处理。 主要特征…

Mac 如何删除文件及文件夹?可以尝试使用终端进行删除

MacOS 是 Mac 电脑采用的操作系统&#xff0c;你知道 Mac 如何删除文件吗&#xff1f;除了直接将文件或者文件夹拖入废纸篓之外&#xff0c;我们还可以采用终端命令的办法去删除文件&#xff0c;本文为大家总结了 Mac 删除文件方法。 为何使用命令行删除文件 在使用 Mac 电脑…

无人零售柜:快捷舒适购物体验

无人零售柜&#xff1a;快捷舒适购物体验 通过无人零售柜和人工智能技术&#xff0c;消费者在购物过程中可以自由选择商品&#xff0c;根据个人需求和喜好查询商品清单。这种自主选择的购物环境能够为消费者提供更加舒适和满意的体验。此外&#xff0c;无人零售柜还具有节约时间…