您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关vue怎么实现绑定事件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
一、前言
vuejs中的事件绑定,使用<v-on:事件名 = 函数名>
来完成的,这里函数名是定义在Vue实例中的methods对象中的,Vue实例可以直接访问其中的方法。
二、事件绑定方式
1、 直接在标签中写js方法
<button v-on:click="alert('hi')">执行方法的第一种写法</button>
2、调用method的办法
<button v-on:click="run()">执行方法的第一种写法</button> <button @click="run()">执行方法的 简写 写法</button> export default { data () { return { msg: '你好vue', list:[] } }, methods:{ run:function(){ alert('这是一个方法'); } } }
(1)方法传参,方法直接在调用时在方法内传入参数
<button @click="deleteData('111')">执行方法传值111</button> <button @click="deleteData('222')">执行方法传值2222</button> deleteData(val){ alert(val); },
(2)传入事件对象
<button data-aid='123' @click="eventFn($event)">事件对象</button> eventFn(e){ console.log(e); // e.srcElement dom节点 e.srcElement.style.background='red'; console.log(e.srcElement.dataset.aid); /*获取自定义属性的值*/ }
三、事件修饰符
1、stop //阻止事件继续传播 即阻止它的捕获和冒泡过程
方法一: @click='show($event)'
我们有了事件对象后,我们函数中是不是就可以利用原生中的e.cancelBubble=true
;
方法二: @click.stop='show()'
只要在事件后面加 .stop 就可以阻止事件冒泡
举个例子:
实例:如下点击内部点击,阻止了冒泡过程,即只执行tz这个方法,如果不加.stop,先执行tz方法,后执行gett方法。即通过了冒泡这个过程。
<div v-on:click="gett"> 外部点击 <div v-on:click.stop="tz">内部点击</div> </div>
2、prevent //阻止默认事件:
方法一: @click='show($event)'
我们有了事件对象后,我们函数中是不是就可以利用原生中的 e.preventDefault();
方法二: @click.prevent='show()'
只要在事件后面加 .prevent 就可以阻止默认事件。
举个例子:阻止了a标签的默认刷新
<a href="" v-on:click.prevent>点击</a>
3、capture // 添加事件监听器时使用事件捕获模式,即在捕获模式下触发
实例:在点击最里层的点击6时,gett方法先执行,因为gett方法在捕获模式执行的,先与冒泡事件。下列执行顺序 geet->set->tz ,因为后俩个还是冒泡模式下触发的事件。
<div v-on:click.capture="gett">外部点击5 <div v-on:click="tz">内部点击5 <div v-on:click="set">点击6</div> </div> </div>
4、self //当前元素自身时触发处理函数时才会触发函数
原理:是根据event.target确定是否当前元素本身,来决定是否触发的事件/函数
实例:如果点击内部点击2,冒泡不会执行gett方法,因为event.target指的是内部点击2的dom元素,不是外部点击1的,所以不会触发自己的点击事件。
<div v-on:click.self="gett"> 外部点击1 <div v-on:click="tz">内部点击2</div> </div>
5、once //只触发一次
实例:
<div v-on:click.once="tz">once</div>
6、键盘事件
方法一:@keydown='show()'
当然我们传个$event 也可以在函数中获 ev.keyCode
if(ev.keyCode==13){ alert('你按了回车键!') }
方法二:
<input type="text" @keyup.enter="show()">回车执行 <input type="text" @keydown.up='show()' >上键执行 <input type="text" @keydown.down='show()' >下键执行 <input type="text" @keydown.left='show()' >左键执行 <input type="text" @keydown.right='show()' >右键执行
关于“vue怎么实现绑定事件”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。