Vue语法

2023-09-20 11:46:45

目录

事件处理器

是什么

 案列

表单的综合案列 

定义

常用功能

组件通信

定义 

 父传子

​编辑 子传父


事件处理器

是什么

事件处理器是一种函数,用于响应和处理事件的触发。在编程中,当特定事件发生时,可以通过事件处理器来执行相应的操作和逻辑。

事件处理器通常与特定的事件绑定在一起。当事件触发时,绑定的事件处理器函数将被调用,并且可以访问事件的相关信息。例如,当用户点击按钮时,与该按钮相关联的点击事件处理器将被调用。

在Vue中,可以使用@v-on指令来绑定事件处理器。例如,@click="handleClick"表示将handleClick函数作为点击事件的处理器。

事件处理器函数可以接收事件对象作为参数,该对象包含有关事件的信息,如事件类型、触发元素、鼠标位置等。事件处理器函数可以执行任意的JavaScript代码,以响应事件并执行相应的操作,如更新数据、调用方法、触发其他事件等。

总结来说,事件处理器是一种函数,用于响应和处理特定事件的触发,以执行相应的操作和逻辑。

 案列

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
			<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
			<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<title>插值</title>
		<style type="text/css">
			.one{
				background-color: red;
				height: 400px;
				width: 400px;
			}
			.two{
				background-color: yellow;
				height: 300px;
				width: 300px;
			}
			.three{
				background-color: greenyellow;
				height: 200px;
				width: 200px;
			}
			.four{
				background-color: blue;
				height: 100px;
				width: 100px;
			}
			
		</style>
	</head>
	<body>
		<div id="app">
			<div class="one" @click="fun1">
				<div class="two" @click.stop="fun2">
					<div class="three" @click.stop="fun3">
						<div class="four" @click.stop="fun4"></div>
					</div>
				</div>
			</div>
			<input :value="msg" />
			<button @click.once="clickMe">点我</button>
		</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				data(){
					return {
						msg:'沸洋洋你个臭傻逼',
					};
					},
					methods:{
						fun1(){
							alert("我是红色");
						},
						fun2(){
							alert("我是黄色");
						},
						fun3(){
							alert("我是黄绿色");
						},
						fun4(){
							alert("我是蓝色");
						},
						clickMe(){
							console.log(this.msg);
						}
					}
			});
		</script>
	</body>
</html>

 

 

在@click后面加.stop 

表单的综合案列 

定义

Vue表单是指在Vue.js框架中用于处理用户输入的一组相关元素和功能。它允许你构建交互式的表单界面,处理用户的输入数据,并将其绑定到Vue实例的数据中。Vue表单提供了一种简单、灵活的方式来管理表单元素,实现数据的双向绑定、验证和提交。

常用功能

1. 数据绑定:将表单元素与Vue实例的数据进行绑定,实现双向数据绑定。

2. 表单验证:对用户输入的数据进行验证,确保数据的合法性。

3. 表单提交:监听表单的提交事件,执行相应的操作,如发送表单数据到后台服务器。

4. 表单重置:提供重置按钮,可以将表单中的数据重置为初始状态。

5. 动态表单:根据数据的变化动态生成表单元素,如根据选项数量生成多选框或下拉菜单。 6. 表单数据处理:对表单数据进行处理,如格式化、过滤、计算等。

7. 表单组件封装:将表单元素封装成可复用的组件,提高开发效率和代码可维护性。

8. 表单联动:实现表单元素之间的联动效果,如一个下拉菜单的选项改变会影响另一个表单元素的可选项。

9. 表单数据持久化:将表单数据存储在本地或远程,以便在页面刷新或重新加载后能够恢复数据。

10. 表单样式设计:通过CSS样式对表单进行美化和定制,提升用户体验。 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
			<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
			<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<title>表单</title>
		
	</head>
	<body> 
		<div id="app">
			姓名:<input name="name" v-model="name" /><br />
			密码:<input type="password" v-model="pwd"/><br />
			性别:<span v-for="s in sexList">
				<input type="radio" name="sex" v-model="sex" :value="s.id" />{{s.name}}
			</span><br />
			籍贯:<select name="myAddr" v-model="myAddr">
				<option v-for="a in address" :value="a.id">{{a.name}}</option>
			</select><br />
			爱好:<span v-for="h in hobby"  >
				<input type="checkbox"  v-model="myLike"  name="myLike" :value="h.id" />{{h.name}}
			</span><br />
			个人简介:<textarea v-model="sign" cols="10" rows="5"></textarea><br />
			同意:<input type="checkbox" v-model="ok" /><br />
			<button v-show="ok" @click="dosub">提交</button>
		</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				data(){
					return {
						name:'灰太狼',
						pwd:'123456',
						sexList:[{
							name: '男', id:1
						}, 
						{
							name: '女', id:2
						},
						{
							name: '未知', id:0
						}],
						sex:1,
						hobby:[{
								name: '抓羊', id: 1
							},{
								name: '争狼王', id: 2
							},{
								name: '带儿子', id: 3
							}],
						myLike:[],
						address:[{
								name: '羊村', id: 1
							},{
								name: '狼堡', id: 2
							},{
								name: '别墅', id: 3
							},{
								name: '城堡', id: 4
						}],
						myAddr:null,
						sign:null,
						ok:false
					};
					},
					methods:{
						dosub(){
							var obj ={};
							obj.name = this.name;
							obj.pwd = this.pwd;
							obj.sex = this.sex;
							obj.address=this.myAddr;
							obj.love=this.myLike;
							obj.sign=this.sign;
							console.log(obj);
						}
					}
			});
		</script>
	</body>
</html>

 

 

组件通信

定义 

1. 父子组件通信:父组件可以通过props将数据传递给子组件,子组件可以通过$emit触发事件通知父组件。这种方式适合用于父组件向子组件传递静态数据或通过事件监听子组件的动态变化。

2. 子父组件通信:子组件可以通过$emit触发事件,将数据传递给父组件。父组件通过监听子组件的事件,接收数据。这种方式适合用于子组件向父组件传递数据或通知父组件进行某些操作。

3. 兄弟组件通信:如果两个组件处于同一父组件下,它们可以通过父组件作为中间人进行通信。兄弟组件可以通过父组件传递数据,或通过事件派发和监听来进行通信。

4. 跨级组件通信:如果组件之间的关系比较复杂,可以使用Vue的事件总线或Vuex进行跨级组件通信。事件总线是一个空的Vue实例,可以作为中央事件总线,用于触发和监听事件。Vuex是一个专门用于管理Vue应用程序状态的库,可以在任何组件中访问共享的状态。

 父传子

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
			<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
			<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<title>组件传参父传子</title>
	</head>
	<body>
		<div id="app">
			<p>自定义组件</p>
			<my-button>xx</my-button>
			<p>组件通信-父传子</p>
			<my-button m='懒大王'></my-button>
			<p>组件通信-父传子2</p>
			<my-button m='懒大王' n="10"></my-button>
			</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				components:{
					'my-button':{
						props:['m','10'],
						template:'<button @click="clickMe">被{{m}}点击了{{n}}次</button>',
						data:function(){
							return{
								n:1
							}
						},
						methods:{
							clickMe(){
								this.n++;
							}
						}
					}
				},
				data(){
					return {
						msg:'沸洋洋你个臭傻逼',
					};
				},
			});
		</script>
	</body>
</html>

 子传父

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
			<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.7.6/vue.js"></script>
			<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.js"></script>
		<title>组件传参子传父</title>
	</head>
	<body>
		<div id="app">
			<p>组件通信-子传父</p>
			<my-button m='懒大王' @xxx="getParam" ></my-button>
			</div>
		<script type="text/javascript">
			new Vue({
				el:"#app",
				components:{
					'my-button':{
						props:['m'],
						template:'<button @click="clickMe">被{{m}}点了</button>',
						methods:{
							clickMe(){
								let name ='懒大王';
								let bname = '我的零食屋';
								let price = '白嫖';
								this.$emit('xxx',name,bname,price);
							}
						}
					}
				},
				methods:{
					getParam(a,b,c){
						console.info(a,b,c);
						
					}
				}
			});
		</script>
	</body>
</html>

更多推荐

Tailwind CSS 初学者指南

TailwindCSS是一个实用程序优先的CSS框架,允许您快速构建现代网站,而无需离开HTML。它是Web开发社区中最流行和使用最广泛的CSS框架之一,每月下载量超过250万次1。在本文中,我们将探讨TailwindCSS2023的路线图,以及如何开始学习和使用这个神奇的工具。文章目录什么是TailwindCSS?为

数据结构——时间复杂度与空间复杂度

目录一.什么是空间复杂度与时间复杂度1.1算法效率1.2时间复杂度的概念1.3空间复杂度的概念二.如何计算常见算法的时间复杂度2.1大O的渐近表示法使用规则三.如何计算常见算法的空间复杂度3.1大O渐近表示法3.2面试题——消失的数字3.3面试题——旋转数组一.什么是空间复杂度与时间复杂度1.1算法效率分为两种,一种是

Fiddler实现android手机抓包

目录一、fiddler的简介二、安装fiddler三、fiddler设置1.设置HTTPS2.设置允许远程连接3.重启fillder,使得配置生效4.查看端口监听四、android端设置1、首先查看电脑的IP地址,确保手机和电脑在同一个局域网内2、设置代理五、抓包测试原文链接一、fiddler的简介fiddler是位于

✔ ★算法基础笔记(Acwing)(二)—— 数据结构(17道题)【java版本】

数据结构1.单链表模板1.单链表(7分钟)2.双链表模板1.双链表3.模拟栈1.模拟栈(一个数组即可)2.表达式求值(20分钟)4.队列tt=-1,hh=0;1.模拟队列5.单调栈1.单调栈(4分钟)3.146.单调队列1.滑动窗口例题(10分钟)7.KMP1.KMP字符串(10分钟)二刷体会★三刷体会ne表示算上第一

网络协议 — LLDP 数据链路发现协议

目录文章目录目录LLDPLLDPDUEthernetIILLDPDUSNAPLLDPDULLDPDUTLVs基本TLV802.1定义的TLV802.3定义的TLV802.3定义的LLDP-MEDTLVLLDP消息流程LLDP协议栈LLDPLLDP(LinkLayerDiscoveryProtocol,链路层发现协议)是

Mysql存储-变量、函数、游标、判断、循环

存储过程(procedure)1、介绍:存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用2、特点封装、复用可以接收参数,也可以返回数据减少网络交互,效率

TCP粘包拆包的原因及解决办法

TCP粘包拆包的原因及解决办法文章目录TCP粘包拆包的原因及解决办法TCP粘包拆包的原因如何解决如果你曾经亲自动手在实际项目中编写过TCP服务器或客户端,特别是涉及到高性能服务器的开发,那么你一定会对TCP的粘包和拆包问题有深刻的理解。这个问题在网络编程中是无法避免的,它源于TCP协议本身的特性和网络环境的复杂性。处理

【MySQL集群一】CentOS 7上搭建MySQL集群:一主一从、多主多从

CentOS7上搭建MySQL集群介绍一主一从步骤1:准备工作步骤2:安装MySQL步骤3:配置主服务器步骤4:创建复制用户步骤5:备份主服务器数据,如果没有数据则省略这一步步骤6:配置从服务器步骤7:配置主从复制步骤8:测试主从复制处理宕机情况处理Slave宕机处理Master宕机一主多从多主多从介绍MySQL集群允

【新版】系统架构设计师 - 案例分析 - 系统维护与设计模式

个人总结,仅供参考,欢迎加好友一起讨论文章目录架构-案例分析-系统维护与设计模式典型例题1典型例题2架构-案例分析-系统维护与设计模式典型例题1某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实

GPT学术优化 (GPT Academic):支持一键润色、一键中英互译、一键代码解释、chat分析报告生成、PDF论文全文翻译功能、互联网信息聚合+GPT等等

项目设计集合(人工智能方向):助力新人快速实战掌握技能、自主完成项目设计升级,提升自身的硬实力(不仅限NLP、知识图谱、计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户更好利用CSDN平台,自主完成项目设计升级,提升自身的硬实力。专栏订阅:项目大全提升自身的硬实力[专栏详细介绍:项目设计

绘图(二)五子棋小游戏

AWT编程·语雀仓库:Java图形化界面:Java图形化界面学习demo与资料(gitee.com)处理位图如果仅仅绘制一些简单的几何图形,程序的图形效果依然比较单调。AWT也允许在组件上绘制位图,Graphics提供了drawlmage()方法用于绘制位图,该方法需要一个Image参数一一代表位图,通过该方法就可以绘

热文推荐