vue实现绑定事件的方法实例代码详解


Posted in Javascript onJune 20, 2019

一、前言

  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实现绑定事件的方法实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
比较详细的javascript对象的property和prototype是什么一种关系
Aug 06 Javascript
javascript 在网页中的运用(asp.net)
Nov 23 Javascript
JavaScript的Module模式编程深入分析
Aug 13 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
Dec 11 Javascript
再谈JavaScript线程
Jul 10 Javascript
基于jquery实现表格内容筛选功能实例解析
May 09 Javascript
jQuery Chart图表制作组件Highcharts用法详解
Jun 01 Javascript
vue-cli初始化项目中使用less的方法
Aug 09 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
Aug 12 Javascript
Javascript实现秒表倒计时功能
Nov 17 Javascript
Vue.js实现大转盘抽奖总结及实现思路
Oct 09 Javascript
在微信小程序中渲染HTML内容3种解决方案及分析与问题解决
Jan 12 Javascript
javascript实现5秒倒计时并跳转功能
Jun 20 #Javascript
JS实现的简单tab切换功能完整示例
Jun 20 #Javascript
Vue 页面权限控制和登陆验证功能的实例代码
Jun 20 #Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 #jQuery
javascript获取select值的方法完整实例
Jun 20 #Javascript
node基于async/await对mysql进行封装
Jun 20 #Javascript
JavaScrip数组去重操作实例小结
Jun 20 #Javascript
You might like
简单的cookie计数器实现源码
2013/06/07 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
PHP易混淆函数的区别及用法汇总
2014/11/22 PHP
PHP排序算法之基数排序(Radix Sort)实例详解
2018/04/21 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
jquery.validate使用攻略 第一部
2010/07/01 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
jquery each()源代码
2011/02/14 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
微信小程序封装http访问网络库实例代码
2017/05/24 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
JS实现鼠标移动拖尾
2020/12/27 Javascript
Python中if __name__ == &quot;__main__&quot;详细解释
2014/10/21 Python
Python使用smtp和pop简单收发邮件完整实例
2018/01/09 Python
详解PANDAS 数据合并与重塑(join/merge篇)
2019/07/09 Python
python join方法使用详解
2019/07/30 Python
python自动化工具之pywinauto实例详解
2019/08/26 Python
python针对Oracle常见查询操作实例分析
2020/04/30 Python
深入解析HTML5中的Blob对象的使用
2015/09/08 HTML / CSS
Chemist Warehouse中文网:澳洲连锁大药房
2021/02/05 全球购物
学校大课间活动方案
2014/01/30 职场文书
亲戚结婚的请假条
2014/02/11 职场文书
《从现在开始》教学反思
2014/04/15 职场文书
元旦晚会活动总结
2014/07/09 职场文书
分居协议书范本(律师见证版)
2014/11/26 职场文书
解除租赁合同协议书
2016/03/21 职场文书
升职感谢领导的话语及升职感谢信
2019/06/24 职场文书
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技