vue之事件处理
一、事件处理方法
1、格式
- 完整格式:v-on:事件名="函数名" 或 v-on:事件名="函数名(参数……)"
缩写格式:@事件名="函数名" 或 @事件名="函数名(参数……)"
注意:@后面没有冒号
- event :函数中的默认形参,代表原生 DOM 事件
当调用的函数,有多个参数传入时,需要使用原生DOM事件,则通过 $event 作为实参传入作用:用于监听 DOM 事件
2、实例
<div id="app">
<!-- `greet` 是在下面定义的方法名 -->
<button v-on:click="greet">无参数事件</button>
<button v-on:click="greet2('hellogreet2')">有参数事件</button>
<button v-on:click="greet3">无参数event</button>
<button v-on:click="greet4('hello',$event)">有参数event</button>
</div>
<script>
var vm = new Vue({
el: '#app',
data: {},
// 在 `methods` 对象中定义方法
methods: {
greet: function () {
alert("无参数")
},
greet2: function (arg) {
console.log(arg)
alert(arg)
},
// `event` 是默认原生 DOM 事件
greet3: function (event) {
console.log(event.target.tagName)
console.log(event.target.innerHTML)
},
// `event` 是默认原生 DOM 事件,如果有多个参数,event要以$event传入
greet4: function (arg, event) {
console.log(arg)
console.log(event.target.tagName)
console.log(event.target.innerHTML)
}
}
}
)
</script>
二、事件修饰符
1、.stop 阻止单击事件继续传播 event.stopPropagation()
<div id="app">
<div @click="doThis">
<!--点击后会调用doWhat再调用doThis-->
<button @click="doWhat">单击事件会继续传播</button>
</div>
<!-- 阻止单击事件继续传播,-->
<div @click="doThis">
<!--点击后只调用doWhat-->
<button @click.stop="doWhat">阻止单击事件会继续传播</button>
</div>
</div>
// 在 `methods` 对象中定义方法
methods: { doThis: function () {
alert("doThis....");
},
doWhat:function(){
alert("doWhat....");
}, }
2、.prevent 阻止事件默认行为 event.preventDefault()
<div id="app">
<!-- 阻止事件默认行为 -->
<a href="http://www.baidu.com" @click.prevent="stopDefault">百度</a>
</div>
// 在 `methods` 对象中定义方法
methods: {
stopDefault() {
alert("href默认跳转被阻止....")
},
}
3、.once 点击事件将只会触发一次
<div id="app">
<!-- 点击事件将只会触发一次 -->
<button @click.once="doOnce">点击事件将只会触发一次</button>
</div>
// 在 `methods` 对象中定义方法
methods: {
doOnce() {
alert("只触发一次")
},
}
4、.self只会触发自己范围内的事件,不会包含子元素
<div @click.self="outer" style="width: 200px;height:100px;background: antiquewhite">
<button @click.stop="inner">inner</button>
</div>
// 在 `methods` 对象中定义方法
methods: {
outer() {
alert("outer")
}, inner() {
alert("inner")
},
}
5、.capture 捕获事件
嵌套多层父子关系,所有父子层都有点击事件,点击子节点,就会触发从外至内 父节点-》子节点的点击事件
<div class="outeer" @click.capture="outer" style="width: 200px;height:100px;background: antiquewhite">
<button @click.capture="inner">inner</button>
</div>
// 在 `methods` 对象中定义方法
methods: {
outer() {
alert("outer")
}, inner() {
alert("inner")
},
先出现:

再出现:

三、按键修饰符
1、格式
- 格式:v-on:keyup.按键名 或 @keyup.按键名
- 常用按键名:
.enter
.tab
.delete (捕获“删除”和“退格”键)
.esc
.space
.up
.down
.left
.right
2、实例
<div id="app">
<label>
<!--进入输入框按回车时调用keyEnter-->
<input @keyup.enter="keyEnter">
</label>
</div>
// 在 `methods` 对象中定义方法
methods: {
keyEnter(){
alert("enter...")
},
}
四、鼠标修饰符
1、使用方式
.left
.right
.middle
这些修饰符会限制处理函数仅响应特定的鼠标按钮。
- @click.left="事件名" 点击鼠标左键触发事件
- @click.right="事件名" 点击鼠标右键触发事件
- @click.middle="事件名" 点击鼠标滚轮触发事件
2、实例
<div id="app">
<div @click.left="mouseLeft">点击鼠标左键触发事件</div>
</div>
// 在 `methods` 对象中定义方法
methods: {
mouseLeft(){
alert("点击鼠标左键触发事件")
},
}
详情:https://cn.vuejs.org/v2/guide/events.html
vue之事件处理的更多相关文章
- vue基础——事件处理
监听事件 可以用 v-on 指令监听dom事件,并在触发时运行一些JavaScript代码. 示例: <div id="example-1"> HTML <but ...
- 一起学Vue之事件处理
在Vue进行前端开发中,事件监听是必不可少的功能,本文通过简单的小例子,简述v-on的简单用法,仅供学习分享使用,如有不足之处,还请指正. 监听事件 可以用 v-on 指令监听 DOM 事件,并在触发 ...
- Vue.js事件处理
Vue.js事件处理 1.v-on指令 用法如下:使用v-on:指令指定其执行的具体内容或者方法名即可. <button v-on:click='num++'>giao</butto ...
- 前端框架之Vue(7)-事件处理
监听事件 可以用 v-on 指令监听 DOM 事件,并在触发时运行一些 JavaScript 代码. 示例: <div id="example-1"> <butt ...
- 【04】Vue 之 事件处理
4.1. 监听事件的Vue处理 Vue提供了协助我们为标签绑定时间的方法,当然我们可以直接用dom原生的方式去绑定事件.Vue提供的指令进行绑定也是非常方便,而且能让ViewModel更简洁,逻辑更彻 ...
- vue基础---事件处理
(1)事件监听 v-on 指令监听 DOM 事件,并在触发时运行JS代码 <div class="event_area"> {{message}} <button ...
- VUE:事件处理和表单输入绑定
事件处理 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <titl ...
- 浅入深出Vue:事件处理
上一篇的最后留下了一个 v-on的思考,也就是本章的主题:事件处理 为什么需要事件处理 在前端开发中,经常要面对各种表单.按钮.而这里面就住着一个事件:点击 (click). 前端童鞋们肯定不陌生它, ...
- vue的事件处理梳理
一.事件函数 1.v-on绑定click,执行一个函数 <input type="button" v-on:click="test" value=&quo ...
随机推荐
- java爬取读者文摘杂志
java爬虫入门实战练习 此代码仅用于学习研究 此次练习选择了读者文摘杂志网站进行文章爬取 练习中用到的都只是一些简单的方法,不过过程中复习了输入流输出流的使用以及文件的创建写入等知识,对自己还是有所 ...
- 2018-2-13-git-cannot-lock-ref
title author date CreateTime categories git cannot lock ref lindexi 2018-2-13 17:23:3 +0800 2018-2-1 ...
- aarch64 架构 交叉编译 tcpdump
1. 下载 tcpdump 源码 地址 :http://www.tcpdump.org/ (4.9.2) tcpdump 依赖 libpcap 源码 地址 : http://www.tcpdu ...
- 更新view是可以update到表的
视图不是表,视图里面的数据是通过sql语句去表中查询得到的.当表中的数据发送更改之后,视图里的数据也会发生相应的更改.所以我么一般有两种方式更新视图里面的数据:一是更新表中的数据,从而间接地更新视图中 ...
- 【学术篇】The Xuanku Inversion Magic学习笔记
退役之前写的 然后因为退役就咕咕咕了... 后来发现数学考试能用的到个鬼就发布出来了QwQ 主要是方便自己没登录的时候查阅... 显然子集什么的是没有学会的QwQ 所以学OI的话不要看本文!!!!!& ...
- 笔记68 Redis数据库
一.Redis简介 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统.Redis是一个开源的使用ANSI ...
- js 搞点小事情
<script type="text/javascript"> (function(){ if(!window.console){window.console ={lo ...
- centos 7.6安装python3环境
Centos7安装Python3的方法 由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到. [root@VM_105_217_ ...
- selenium基本元素定位-findElement(By.*)
selenium基本元素的定位和操作 一. 查找元素 1.1 findElement(By.id) // by——>定位器——>以某种方式去找元素 driver.findElement(b ...
- JMeter生成性能报表-Windows环境和Linux环境
转载自https://www.cnblogs.com/imyalost/p/10239317.html