vue.js事件处理器是什么


Posted in Javascript onMarch 20, 2017

监听事件

可以用v-on指令监听DOM事件来触发一些javascript代码。

demo:

<div v-on:click="++counter">点击,增加1</div>
<span>{{counter}}</span>
data:{

counter:0

}

方法事件处理器

许多事件处理器的逻辑都很复杂,所以直接把javaScript代码写在v-on指令中是不可行的。因此v-on可以接收一个定义的方法来调用

<div v-on:click="counter()">点击,增加1</div>
<span>{{counter}}</span>
data:{

counter:0

},

method:{


counter:function(){


this.counter++;


}

}

有时也需要在内联语句处理器中访问原生DOM事件,可以用特殊变量$event把它传入方法:

$event 原生事件对象

事件修饰符
在事件处理程序中调用event.preventDefault()或event.stopPropagagation()是非常常见的需求。尽管我们可以在methods中轻松实现这点,但更好的

方式是:methods只是纯粹的数据逻辑,而不是去处理DOM事件的细节。

为了解决这个问题,Vue.js为v-on提供了事件修饰符,通过由(.)表示的指令后缀来调用修饰符。

.stop

.prevent

.capture

.self

.once 

<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>
<!-- 添加事件侦听器时使用事件捕获模式 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 -->
<div v-on:click.self="doThat">...</div>

新增

<!--点击事件将只会触发一次-->
<a v-on:click.once="dothis"></a>

不像其他只能对原生的DOM事件起作用的修饰符,.once修饰符还能被用到自定义的组件事件上

按键修饰符
在监听键盘事件时,我们经常需要监听常见的键值。

Vue允许为v-on在监听事件时添加按键修饰符:

<!--只有在keyCode是13时调用vm.submit()-->
<input v-on:keyup.13="submit">

常见的按键还有别名:

<input v-on:keyup.enter="submit">
<input @keyup.enter="submit">

全部的按键别名:

.enter

.tab

.delete

.esc

.space

.up

.down

.left

.right

可以通过全局config.keyCodes对象 自定义案件修饰符别名

//可以使用v-on:keyup.f1
Vue.config.keyCodes.f1=112

按键修饰符  新增

可以用如下修饰符开启鼠标或键盘事件监听,使在按键按下时发生反应。

.ctrl

.alt

.shift

.meta 

注意:在不同系统的键盘上,meta对应的键不一样

为什么在HTML中监听事件
你可能注意到这种事件监听的方式违背了关注点分离的传统理念。不必担心,因为所有的Vue.js事件处理方法和表达式都严格绑定在当前视图的ViewModel上,它不会导致任何维护上的困难。实际上,使用v-on有几个好处:

1 扫一眼HTML模板便能轻松定位在JavaScript代码里对应的方法

2 因为你无须在JavaScript里手动绑定事件,你的viewModel代码可以是非常纯粹的逻辑,和DOM完全解耦,更易于测试。

3 当一个ViewModel被销毁时,所有的事件处理器都会自动被删除,你无须担心如何自己清理它们。

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
javascript forEach通用循环遍历方法
Oct 11 Javascript
菜鸟javascript基础资料整理3 正则
Dec 06 Javascript
阻止子元素继承父元素事件具体思路及实现
May 02 Javascript
js触发select onchange事件的小技巧
Aug 05 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
Feb 27 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
Windows安装Node.js报错:2503、2502的解决方法
Oct 25 Javascript
mongoose设置unique不生效问题的解决及如何移除unique的限制
Nov 07 Javascript
.vue文件 加scoped 样式不起作用的解决方法
May 28 Javascript
微信提示 在浏览器打开 效果实现过程解析
Sep 10 Javascript
OpenLayers3实现鼠标移动显示坐标
Sep 25 Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 #Javascript
Vue.js基础学习之class与样式绑定
Mar 20 #Javascript
详解Vue中添加过渡效果
Mar 20 #Javascript
JS模拟实现ECMAScript5新增的数组方法
Mar 20 #Javascript
JavaScript 过滤关键字
Mar 20 #Javascript
Extjs表单输入框异步校验的插件实现方法
Mar 20 #Javascript
js实现鼠标拖动功能
Mar 20 #Javascript
You might like
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
浅谈PHP与C#的值类型指向区别的详解
2013/05/21 PHP
Ubuntu server 11.04安装memcache及php使用memcache来存储session的方法
2016/05/31 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
Vue使用轮询定时发送请求代码
2020/08/10 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
python实现猜数字游戏(无重复数字)示例分享
2014/03/29 Python
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
在Python 中实现图片加框和加字的方法
2019/01/26 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
美国知名女性服饰品牌:New York & Company
2017/03/23 全球购物
护士自我评价范文
2014/01/25 职场文书
关于廉洁的广播稿
2014/01/30 职场文书
酒店服务员岗位职责
2015/02/09 职场文书
施工员岗位职责
2015/02/10 职场文书
田径运动会广播稿
2015/08/19 职场文书
六年级语文教学反思
2016/03/03 职场文书
python脚本框架webpy模板控制结构
2021/11/20 Python
Python开发五子棋小游戏
2022/05/02 Python