6.Vue.js前端框架:事件处理

news/2024/7/24 11:24:18 标签: vue, javascript, html, 前端, 经验分享

1. v-on 事件监听

监听DOM事件使用 v-on 指令。该指令通常在模板中直接使用,在触发事件时会执行一些 JavaScript 代码。

v-on 指令的基本用法

(1)在 HTML 中使用 v-on 指令,后面可以是所有的原生事件名称。基本用法如下:

html"><button v-on:click="show">显示</button>

将 click 单击事件绑定到 show 方法中,单击“显示”按钮时,执行 show() 方法,show() 方法在 Vue实例中定义。

(2)在使用 v-on 指令的过程中,Vue.js 提供了 v-on 指令的简写形式 “@” ,上述代码可改写为如下:

html"><button @click="show">显示</button>

(3)v-on 指令的简单用法如下:

html"><div id="box">
			<!--v-on 基本用法-->
			<button v-on:click="count1++">计数</button>
			<p>按钮被点击{{count1}}次</p>
			<!--v-on 简单用法-->
			<button @click="count2++">计数</button>
			<p>按钮被点击{{count2}}次</p>
</div>
		   <script type="text/html" title=javascript>javascript">html" title=javascript>javascript">
				var vm = new Vue({
					el : '#box',
					data:{
						count1:0,
						count2:0
					}
					
				});
			</script>

v-on 指令的简单用法如下图所示:
在这里插入图片描述

事件处理方法

在使用 v-on 指令过程中,通过 v-on 指令需要将事件和某个方法进行绑定,而绑定的方法作为事件处理器定义在 methods 选项中。示例代码参考如下:

html"><div id="box">
			<button v-on:click="show">显示</button>
		</div>
		   <script type="text/html" title=javascript>javascript">html" title=javascript>javascript">
				var vm = new Vue({
					el : '#box',
					data:{
						name:'晓茗',
						age: 29,
						occupation:'演员'
					},
					methods:{
						show:function(){
							alert('姓名:'+this.name+'年龄:'+this.age+'职业:'+this.occupation);
						}
					}
					
				});
			</script>

v-on 指令将点击事件与显示方法绑定的结果图片如下:
在这里插入图片描述

使用内联 JavaScript 语句

(1)使用 v-on 指令除了直接绑定到一个方法之外,v-on 指令也支持内联 JavaScript 语句,但前提是只可以使用一个语句。示例代码参考如下:

html"><div id="box">
			<button v-on:click="show('明日之星')">显示</button>
		</div>
		   <script type="text/html" title=javascript>javascript">html" title=javascript>javascript">
				var vm = new Vue({
					el : '#box',
					methods:{
						show:function(message){
							alert('消息:'+message);
						}
					}
					
				});
			</script>

使用内联 JavaScript 语句的运行结果如下图所示:
在这里插入图片描述
(2)在内联语句中需要获取原生的 DOM 事件对象时,可以将一个特殊变量 $event 传入方法中。示例代码如下:

html"><div id="box">
			<a href="http://www.baidu.com" v-on:click="show('明日之星',$event)">{{message}}</a>
		</div>
		   <script type="text/html" title=javascript>javascript">html" title=javascript>javascript">
				var vm = new Vue({
					el : '#box',
					data:{
						message:'你好'
					},
					methods:{
						show:function(message1,e){
							e.preventDefault();
							alert(message1);
						}
					}
					
				});
			</script>

除了向 show() 方法传递一个值外,还传递了一个特殊变量 $event,该变量的作用是当点击超链接时,对原生 DOM 事件进行处理,应用 preventDefault() 方法阻止该超链接的跳转行为。当单击 “你好” 超链接时,会弹出对话框,运行结果如下图所示:
在这里插入图片描述

2. 事件处理修饰符

所谓修饰符,就是以半角句点符号指明的特殊后缀。Vue.js 为 v-on 指令提供了多个修饰符,包括事件修饰符和按键修饰符。
事件修饰符
在事件处理程序中经常会调用 preventDefault() 或 stopPropagation() 方法来实现特定的功能。为处理这些 DOM 事件细节,Vue.js 为 v-on 指令提供了事件修饰符。常用的事件修饰符及其说明如下表所示:
在这里插入图片描述
修饰符可以串联使用,而且可以只使用修饰符,而不绑定事件处理方法。事件修饰符的使用方式如下:

html"><!-- 阻止单击事件继续传播-->
<a v-on:click.stop="doSomething"></a>
<!-- 阻止表单默认提交事件-->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 只有当事件从当前元素本身触发时才调用处理函数-->
<div v-on:click.self="doSomething"></div>
<!-- 修饰符串联,阻止表单默认提交事件且阻止冒泡-->
<a v-on:click.stop.prevent="doSomething"></a>
<!-- 只有修饰符,而不绑定事件-->
<form v-on:submit.prevent></form>

应用一个 .stop 修饰符阻止事件冒泡的示例代码如下:

html"><div id="box">
			<div v-on:click="show('div事件触发')">
				<button v-on:click.stop="show('按钮的事件触发')">显示</button>
			</div>
		</div>
		   <script type="text/html" title=javascript>javascript">html" title=javascript>javascript">
				var vm = new Vue({
					el : '#box',
					methods:{
						show:function(message){
							alert(message);
						}
					}
					
				});
			</script>

当单击”显示“按钮时,只会触发该按钮的单击事件。如果在按钮中未使用 .stop 修饰符,当单击”显示“按钮时,不但会触发该按钮的单击事件,还会触发 div 的单击事件,会弹出两个对话框。运行结果如下图所示:
(1)使用 .stop 修饰符:
在这里插入图片描述
(2)未使用.stop 修饰符点击确定后显示:
在这里插入图片描述
在这里插入图片描述
按键修饰符
除事件修饰符之外,Vue.js 还为 v-on 指令提供了按键修饰符,以便监听键盘事件中的按键。当触发键盘事件时需要检测按键的 keyCode值,代码如下:

html"><input v-on:keyup.13="submit">

应用 v-on 指令监听键盘的 keyup 事件,键盘中回车键的 keyCode 值是13,所以,在文本框输入内容后,单击回车键时就会调用 submit()方法。
对上述所示的代码,可以使用其别名的方式,回车键别名为 Enter ,代码如下:

html"><input v-on:keyup.enter="submit">

Vue.js 为常用的按键提供的别名如下表所示:
在这里插入图片描述

备注:后期会继续跟进 Vue.js前端框架:表单控制绑定,希望大家的多多支持和关注。


http://www.niftyadmin.cn/n/1664346.html

相关文章

【Linux学习笔记】20:Bash基础-历史命令

把操作的记录保存在系统当中&#xff0c;当需要的时候还可以查看和调用&#xff0c;这是一种必要的机制。 最早的Bourne Shell——sh是不支持历史命令的&#xff0c;发展到现在的Bash已经支持的很好了。 [1]history history [选项] [历史命令保存文件] 选项&#xff1a;-c清…

how to check sap system log ---SM21

T-code : SM21 this function can check sap system log , the log can display in specific standard, also can analyzing buy user. input sm21, press enter click Reread system log export all log to html file, please see attach 本文转自成杭 51CTO博客&#xff0c;原…

7.Vue.js前端框架:表单控制绑定

1. 绑定文本框 文本框的绑定需要使用 v-model 指令。v-model 指令会根据控件类型自动选择正确的方法来更新元素。在表单中&#xff0c;文本框是最基本的表单控件类型&#xff0c;它分为单行文本框和多行文本框。 1.1 单行文本框 单行文本框用户输入单行文本&#xff0c;可以…

8.Vue.js前端框架:自定义指令

1、为什么要定义自定义指令 在学习了 Vue 前端框架之后&#xff0c;我们也认识了许多的内置指令&#xff0c;比如&#xff0c;v-for 指令、v-if 指令、v-bind 指令、v-model 指令等等。但是由于这些内置指令都偏向于工具化&#xff0c;而在有些时候需要去实现具体的业务逻辑时…

VMC to Hyper-V Import Tool 简体中文版.VZPEDIA首发

很多朋友都用过各种各样的虚拟机转化方面的小工具.最近一直在整理Blog就没怎么写东西.今天想把手头的虚拟机导入到Hyper-v里面就去找了个小工具TenSeldamUtility.里面有两个文件一个是X86(目前只汉化了X86的),一个是X64下面的.不知道在Windows 7下,是不是显示有问题.很多都出错…

9.Vue.js前端框架:组件

1、什么是组件 在使用 Vue 进行前端项目开发过程中&#xff0c;组件的使用最为广泛。然而&#xff0c;什么是组件呢&#xff1f;组件&#xff0c;是 Vue.js 最强大的功能之一。通过开发组件可以封装可复用的代码&#xff0c;将封装好的代码注册成标签&#xff0c;实现扩展 HTM…

利用shell监控cpu、磁盘、内存使用率

利用shell监控cpu、磁盘、内存使用率&#xff0c;达到警报阈值发邮件进行通知 并配合任务计划&#xff0c;即可及时获取报警信息 1234567891011121314151617181920212223242526272829303132333435#!/bin/bash###############################################Author: Liuzhengw…

10.Vue.js前端框架:过渡

1、过渡的作用 Vue.js 内置了一套过渡系统&#xff0c;该系统是 Vue.js 为 DOM 动画效果提供的一个特性。在插入、更新或者移除 DOM 时可以触发 CSS 过渡和动画&#xff0c;从而产生过渡效果。 2、单元素过渡 2.1 CSS 过渡 Vue.js 提供了内置的过渡封装组件 transition&…