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 内置对象属性及方法集合
Jul 04 Javascript
jQuery 三击事件实现代码
Sep 11 Javascript
node.js中的events.emitter.removeListener方法使用说明
Dec 10 Javascript
浅谈js中变量初始化
Feb 03 Javascript
jQuery使用slideUp方法实现控制元素缓慢收起
Mar 27 Javascript
jQuery基于cookie实现的购物车实例分析
Dec 24 Javascript
基于JS实现省市联动效果代码分享
Jun 06 Javascript
XMLHttpRequest Level 2 使用指南
Aug 26 Javascript
用AngularJS来实现监察表单按钮的禁用效果
Nov 02 Javascript
JS实现点击复选框变更DIV显示状态的示例代码
Dec 18 Javascript
JS常见构造模式实例对比分析
Aug 27 Javascript
node爬取新型冠状病毒的疫情实时动态
Feb 06 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
在php MYSQL中插入当前时间
2008/04/06 PHP
PHP中基本符号及使用方法
2010/03/23 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
php 微信公众平台开发模式实现多客服的实例代码
2016/11/07 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
javascript笔记 String类replace函数的一些事
2011/09/22 Javascript
全面了解javascript三元运算符
2016/06/27 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
jQuery学习之DOM节点的插入方法总结
2017/01/22 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
JavaScript+CSS相册特效实例代码
2017/09/07 Javascript
node.js基于express使用websocket的方法
2017/11/09 Javascript
Node.js npm命令运行node.js脚本的方法
2018/10/10 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
[01:14:31]Secret vs VG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python计算一个序列的平均值的方法
2015/07/11 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python3学习urllib的使用方法示例
2017/11/29 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
python selenium 弹出框处理的实现
2019/02/26 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
详解Django CAS 解决方案
2019/10/30 Python
PyCharm无法识别PyQt5的2种解决方法,ModuleNotFoundError: No module named 'pyqt5'
2020/02/17 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
印尼在线精品店:Berrybenka.com
2016/10/22 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
大学生个人求职信范文
2013/09/21 职场文书
大学生关于奋斗的演讲稿
2014/01/09 职场文书
市场营销求职信范文
2014/02/21 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
golang switch语句的灵活写法介绍
2021/05/06 Golang