组件间通信案例练习

news2024/11/29 19:49:49

1.实现父传子

 App.vue

<template>
	<div class="app">
		<tab-control :titles='["衣服","鞋子","裤子"]'></tab-control>
		<tab-control :titles='["流行","最新","优选","数码"]'></tab-control>
	</div>
</template>

<script>

import TabControl from "./TabControl"

export default {
	components:{
		TabControl
	}
}
</script>

<style scoped>

</style>

TabControl.vue

<template>
	<div class="tab-control">
		<template v-for="item in titles" :key="item">
			<div class="tab-control-item">{{item}}</div>
		</template>
	</div>
</template>

<script>

import TabControl from "./TabControl"

export default {
props:{
	titles:{
		type:Array,
		default:()=>[]
	}
}
}
</script>

<style scoped>
.tab-control
	{
		display: flex;
		height: 44px;
		line-height: 44px;
		text-align: center;
	}
	.tab-control-item
	{
		flex: 1;
	}
</style>

 易错:

:titles='["衣服","鞋子","裤子"]'这里是"[]",不是[]

2.实现点击下方出现颜色条

如何实现点击获取当前index

注意v-for也要写上index,@click写上参数index

		<template v-for="(item,index) in titles" :key="item">
			<div class="tab-control-item" 
				@click="tabItemClick(index)" 
				:class="{active:index==currentIndex}">{{item}}</div>
		</template>
export default {
props:{
	titles:{
		type:Array,
		default:()=>[]
	}
},
data()
{
	return{
		currentIndex:0
	}
},
emits:["tabItemClick"],
methods:{
	tabItemClick(index)
	{
		this.currentIndex=index
		this.$emit("tabItemClick",index)
	}
}
}

此处.active无空格 

	.tab-control-item.active

为了确保父组件知道发送了这个函数,emit要写入此函数

emits:["tabItemClick"],
methods:{
	tabItemClick(index)
	{
		this.currentIndex=index
		this.$emit("tabItemClick",index)
	}
}

接着父元素@此函数,

		<tab-control 
		:titles='["衣服","鞋子","裤子"]'
		@tab-item-click="tabItemClick">
	</tab-control>
	methods:
	{
		tabItemClick(index)
		{
			console.log("app",index)
		}
	}

全部代码

App.vue

<template>
	<div class="app">
		<!-- tab -->
		<tab-control 
		:titles='["衣服","鞋子","裤子"]'
		@tab-item-click="tabItemClick">
	</tab-control>
	<!-- 展示内容 -->
	<h1 >{{pageContents[currentIndex]}}</h1>
	</div>
</template>

<script>

import TabControl from "./TabControl"

export default {
	data()
	{
		return{
			pageContents:["衣服列表","鞋子列表","裤子列表"],
			currentIndex:0
		}
	},
	components:{
		TabControl
	},
	methods:
	{
		tabItemClick(index)
		{
			console.log("app",index)
			this.currentIndex=index
		}
	}
}
</script>

<style scoped>

</style>

TabControl.vue

<template>
	<div class="tab-control">
		<template v-for="(item,index) in titles" :key="item">
			<div class="tab-control-item" 
				@click="tabItemClick(index)" 
				:class="{active:index==currentIndex}">
			<span>{{item}}</span>
			</div>
		</template>
	</div>
</template>

<script>

import TabControl from "./TabControl"

export default {
props:{
	titles:{
		type:Array,
		default:()=>[]
	}
},
data()
{
	return{
		currentIndex:0
	}
},
emits:["tabItemClick"],
methods:{
	tabItemClick(index)
	{
		this.currentIndex=index
		this.$emit("tabItemClick",index)
	}
}
}
</script>

<style scoped>
.tab-control
	{
		display: flex;
		height: 44px;
		line-height: 44px;
		text-align: center;
	}
	.tab-control-item
	{
		flex: 1;
	}
	.tab-control-item.active
	{
		color:red;
		font-weight: 700;
	}
	.tab-control-item.active span
	{
		border-bottom: 3px solid red;
	}
</style>

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全 Day08-Linux文件属性知识

Linux 文件属性知识 1. 查看文件属性2. 文件属性知识 1. 查看文件属性 语法&#xff1a;ls -lhi&#xff08;l-长格式 h-人类可读&#xff09;结果[rootlocalhost ~] ls -lhi total 11M 202312369 drwxr-xr-x. 31 root root 4.0K Jul 30 2023 1 134317954 -rw-------. 1 roo…

SpringBoot实战(二十二)集成 Sleuth、Zipkin

目录 一、简介1.Sleuth2.Zipkin 二、搭建 zipkin-server1.jar包启动2.docker启动3.自己搭建**Maven依赖**添加启动类注解 4.页面截图 三、搭建 sleuth-zipkin1.Maven 依赖2.yaml配置3.代码实现DemoController.javaDemoFeignClient.java 4.测试 一、简介 1.Sleuth 官方文档&am…

安全技术-大数据平台安全防护技术

一、大数据基本概念及背景 1.1大数据发展的背景-数据爆炸 伴随着互联⽹、物联⽹、电⼦商务、社交媒体、现代物流、⽹络⾦融等⾏业的发展&#xff0c;全球数据总量正呈⼏何级数增长&#xff0c;过去⼏年时间产⽣的数据总量超过了⼈类历史上的数据总和&#xff0c;预计2020年全…

json的序列化与反序列化

目录 json的下载 json的序列化 json的反序列化 备注json开源项目github地址&#xff1a;https://github.com/nlohmann/json 备注开发环境&#xff1a;vscode通过ssh连接虚拟机中的ubuntu&#xff0c;ubuntu-20.04.3-desktop-amd64.iso json的下载 git clone https://githu…

iptables的备份和还原

iptables的备份和还原 1、写在命令行当中的都是临时设置 2、把规则配置写在服务的文件当中&#xff0c;形成永久有效 备份&#xff1a;把iptables里面所有的配置都保存在/opt/ky30.bak中 iptables-save > /opt/ky30.bak 例&#xff1a; 默认配置文件在/etc/sysconfig/ip…

C++ const与指针

const与指针 1.const在C语言和C中的区别 &#xff08;1&#xff09;在C语言中 #include<stdio.h> int main() {const int n 10; int arr[n] { 1,2 }; //errorreturn 0; }在C语言中&#xff0c;const修饰的变量是只读变量&#xff08;常变量&#xff09;&#xff0c…

假如三国有网络安全攻防演练

东汉末年&#xff0c;天下三分&#xff0c;而奠定这一局势的战役就是历史上赫赫有名的“赤壁大战”。 作为我国以少胜多的经典战例&#xff0c;赤壁之战汇聚了三国最顶级的名臣武将&#xff0c;期间各种计谋、策略环环相扣&#xff0c;高潮迭起&#xff0c;攻守双方你方唱罢我…

【Java|golang】860. 柠檬水找零

在柠檬水摊上&#xff0c;每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品&#xff0c;&#xff08;按账单 bills 支付的顺序&#xff09;一次购买一杯。 每位顾客只买一杯柠檬水&#xff0c;然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零&#xff0c;…

AtcoderABC235场

A - Rotate A - Rotate 题目大意 题目要求给定一个3位的整数abc&#xff0c;其中每个数字都不是0。计算abc bca cab的结果。 思路分析 将a、b和c按照题目要求的顺序连接起来&#xff0c;得到字符串abc、bca和cab。将这三个字符串转换为整数&#xff0c;分别表示为变量abc…

【后端面经】微服务构架 (1-3) | 熔断:抖抖抖不停?微服务熔断策略让你的系统稳如泰山!

文章目录 一、前置知识1、什么是熔断?2、什么是限流?3、什么是降级?4、怎么判断微服务出现了问题?A、指标有哪些?B、阈值如何选择?C、超过阈值之后,要不要持续一段时间才触发熔断?5、服务恢复正常二、面试环节1、面试准备2、面试基本思路三、总结 在微服务构架中…

ModuleNotFoundError: No module named ‘transformers.models.mmbt‘

使用simpletransformers时出现ModuleNotFoundError: No module named transformers.models.mmbt’错误。 1. 报错代码&#xff1a; from simpletransformers.classification import ClassificationModel 2. 报错结果 3. 报错原因 transformers和simpletransformers版本的问…

【C语言进阶篇】数组指针都学过了那么函数指针你了解嘛?

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言&#x1f4ac; 函数指针&#x1f4ad; 函数名 和 &函数&#x1f4ad; 函数指针的定义&am…

蕨型叶分形

目录 要点 基本语句 EraseMode 习题 1 设置颜色 2 旋转蕨型叶图 3 枝干 4 塞平斯基三角形 要点 蕨型叶是通过一个点的反复变换产生的&#xff0c;假设x是一个含有两个分量的向量&#xff0c;可以用来表示平面内的一个点&#xff0c;则可以用Axb的形式对其进行变换。 基本…

衡器关于检定分度值e和实际分度值d的一点认识

在看衡器认证的文档时有两个概念很容易混淆d(actual scale interval)和e(verification scale interval)&#xff0c;国内文档上翻译为实际分度值和检定分度值。 实际分度值(d)就是称能显示的最小刻度或最小能显示的值跨度&#xff0c;可以理解为可读精度&#xff0c;例如电子秤…

[虚幻引擎] UE里面监控每帧循环里面 C++ 函数的性能, 函数耗时,函数效率,函数执行时间

在使用C开发UE引擎&#xff0c;有时候需要监控函数的执行的执行效率&#xff0c;这个时候有两种方式可以使用。 1. 执行代码耗时时间 double ThisTime 0;{SCOPE_SECONDS_COUNTER(ThisTime);// ...// 一串代码// ...}UE_LOG(LogTemp, Log, TEXT("Stats::Broadcast %.2f&qu…

【Spring Boot】Web开发 — 数据验证

Web开发 — 数据验证 对于应用系统而言&#xff0c;任何客户端传入的数据都不是绝对安全有效的&#xff0c;这就要求我们在服务端接收到数据时也对数据的有效性进行验证&#xff0c;以确保传入的数据安全正确。接下来介绍Spring Boot是如何实现数据验证的。 1.Hibernate Vali…

mysql(三)用户权限管理

目录 前言 一、概述 二、用户权限类型 三、用户赋权 四、权限删除 五、删除用户 前言 为什么要设置用户权限&#xff1f; MySQL设置用户管理权限的主要目的是为了确保数据库的安全性和数据的机密性。以下是一些原因&#xff1a; 1. 安全性&#xff1a;MySQL是一个开源的关系型…

多线程案例 | 单例模式、阻塞队列、定时器、线程池

多线程案例 1、案例一&#xff1a;线程安全的单例模式 单例模式 单例模式是设计模式的一种 什么是设计模式&#xff1f; 设计模式好比象棋中的 “棋谱”&#xff0c;红方当头炮&#xff0c;黑方马来跳&#xff0c;针对红方的一些走法&#xff0c;黑方应招的时候有一些固定的…

【C++初阶】:模板进阶

模板进阶 一.非类型模板参数二.模板的特化1.概念2.函数模板特化3.类的特化1.全特化2.偏特化 三.模板的分离编译 一.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类…

Play 资产分发(Play Asset Delivery)

一、前言 Google Play发布应用&#xff0c;只支持上传aab格式文件。在之前&#xff0c;Google Play对上传apk文件限制大小不超过150MB&#xff0c;对于新的aab格式文件&#xff0c;也要求生成的目标apk不超过150MB&#xff08;GooglePlay后台使用bundletool生成apk文件&#xf…