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 相关文章推荐
jQuery Ajax使用 全解析
Dec 15 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
js将long日期格式转换为标准日期格式实现思路
Apr 07 Javascript
JS Replace()的高级使用方法介绍
Jun 29 Javascript
扩展IE中一些不兼容的方法如contains、startWith等等
Jan 09 Javascript
javascript实现根据iphone屏幕方向调用不同样式表的方法
Jul 13 Javascript
jQuery ajax MD5实现用户注册即时验证功能
Oct 11 Javascript
WebSocket实现简单客服聊天系统
May 12 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
深入浅出es6模板字符串
Aug 26 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 Javascript
jQuery实现轮播图源码
Oct 23 jQuery
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通过iconv将字符串从GBK转换为UTF8字符集
2011/07/18 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
PHP Cookei记录用户历史浏览信息的代码
2016/02/03 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
JQuery 遮罩层实现(mask)实现代码
2010/01/09 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
Javascript图像处理思路及实现代码
2012/12/25 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
2015/06/10 Javascript
JS中call/apply、arguments、undefined/null方法详解
2016/02/15 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
2016/04/03 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
python GUI实例学习
2017/11/21 Python
python-opencv颜色提取分割方法
2018/12/08 Python
python 图像平移和旋转的实例
2019/01/10 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
关于Python turtle库使用时坐标的确定方法
2020/03/19 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
HTML5之SVG 2D入门4—笔画与填充
2013/01/30 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
汽车专业人才自我鉴定范文
2013/12/29 职场文书
基层干部十八大感言
2014/01/19 职场文书
教师党性分析材料
2014/02/04 职场文书
银行稽核岗位职责
2015/04/13 职场文书
单位工资证明范本
2015/06/12 职场文书
入党函调证明材料
2015/06/19 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
《我和小伙伴》教学反思
2016/02/20 职场文书
python如何读取.mtx文件
2021/04/22 Python
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers
全网非常详细的pytest配置文件
2022/07/15 Python