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 相关文章推荐
xml分页+ajax请求数据源+dom取结果实例代码
Oct 31 Javascript
javascript 事件处理示例分享
Dec 31 Javascript
Windows系统下Node.js的简单入门教程
Jun 23 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
Aug 24 Javascript
javascript输出AscII码扩展集中的字符方法
Dec 26 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
JS实现运动缓冲效果的封装函数示例
Feb 18 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
Jul 10 Javascript
VUE DOM加载后执行自定义事件的方法
Sep 07 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
基于js实现抽红包并分配代码实例
Sep 19 Javascript
vue使用Google Recaptcha验证的实现示例
Aug 23 Vue.js
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
php类
2006/11/27 PHP
PHP5+UTF8多文件上传类
2008/10/17 PHP
php操作xml入门之xml基本介绍及xml标签元素
2015/01/23 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
Google AJAX 搜索 API实现代码
2010/11/17 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
如何将JS的变量值传递给ASP变量
2012/12/10 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
angular简介和其特点介绍
2015/01/29 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
Python读取网页内容的方法
2015/07/30 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
使用Python和Scribus创建一个RGB立方体的方法
2019/07/17 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
HTML5中5个简单实用的API(第二篇,含全屏、可见性、拍照、预加载、电池状态)
2014/05/07 HTML / CSS
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
"火柴棍式"程序员面试题
2014/03/16 面试题
通信工程毕业生求职信
2013/11/16 职场文书
《奇妙的国际互联网》 教学反思
2014/02/25 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
专项法律服务方案
2014/06/11 职场文书
班级心理活动总结
2014/07/04 职场文书
无犯罪记录证明
2014/09/19 职场文书
简历自我评价模板
2015/03/11 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
高中信息技术教学反思
2016/02/16 职场文书
二手手机买卖合同范本(2019年版)
2019/10/28 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS