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 相关文章推荐
原生Js实现简易烟花爆炸效果的方法
Mar 20 Javascript
jQuery实现dialog设置focus焦点的方法
Jun 10 Javascript
浅谈jQuery.easyui的datebox格式化时间
Jun 25 Javascript
js表单中选择框值的获取及表单的序列化
Dec 17 Javascript
javascript从作用域链谈闭包
Jul 29 Javascript
分享JS数组求和与求最大值的方法
Aug 11 Javascript
高性能的javascript之加载顺序与执行原理篇
Jan 14 Javascript
jQuery实现动态加载select下拉列表项功能示例
May 31 jQuery
微信小程序动态增加按钮组件
Sep 14 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
Dec 10 Javascript
在vue中高德地图引入和轨迹的绘制的实现
Oct 11 Javascript
vue调用微信JSDK 扫一扫,相册等需要注意的事项
Jan 03 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去除二维数组的重复项方法
2015/11/04 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
通过判断JavaScript的版本实现执行不同的代码
2010/05/11 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
Bootstrap实现响应式导航栏效果
2015/12/28 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
详解在HTTPS 项目中使用百度地图 API
2019/04/26 Javascript
laydate只显示时分 不显示秒的功能实现方法
2019/09/28 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
js HTML DOM EventListener功能与用法实例分析
2020/04/27 Javascript
Python中使用strip()方法删除字符串中空格的教程
2015/05/20 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
解决python大批量读写.doc文件的问题
2018/05/08 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
PHP中如何创建和修改数组
2012/05/02 面试题
大学生毕业自荐信
2013/10/10 职场文书
股份合作协议书
2014/04/12 职场文书
正科级干部考察材料
2014/05/29 职场文书
五四演讲稿范文
2014/09/03 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
医院党的群众路线教育实践活动学习心得体会
2014/10/30 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2014年中职班主任工作总结
2014/12/16 职场文书
八一建军节慰问信
2015/02/14 职场文书
应届毕业生求职信范文
2015/03/19 职场文书
三八妇女节致辞
2015/07/31 职场文书
被委托人身份证明
2015/08/07 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
Python 解决空列表.append() 输出为None的问题
2021/05/23 Python