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的inArray 方法介绍
Oct 08 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
js加减乘除丢失精度问题解决方法
May 16 Javascript
JS实现很实用的对联广告代码(可自适应高度)
Sep 18 Javascript
JS中正则表达式全局匹配模式 /g用法详解
Apr 01 Javascript
详解RequireJS按需加载样式文件
Apr 12 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
Apr 23 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
May 24 Javascript
react-native 封装选择弹出框示例(试用ios&amp;android)
Jul 11 Javascript
node中modules.exports与exports导出的区别
Jun 08 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
May 05 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版自动生成文章摘要
2008/07/23 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
简单的php购物车代码
2020/06/05 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
详谈innerHTML innerText的使用和区别
2017/08/18 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
2017/10/30 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
vue select选择框数据变化监听方法
2018/08/24 Javascript
JavaScript原型链与继承操作实例总结
2018/08/24 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
vue组件创建的三种方式小结
2020/02/03 Javascript
[08:29]DOTA2每周TOP10 精彩击杀集锦vol.7
2014/06/25 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
python删除列表内容
2015/08/04 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
python执行精确的小数计算方法
2019/01/21 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
django template实现定义临时变量,自定义赋值、自增实例
2020/07/12 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
职业生涯规划书范文
2014/03/10 职场文书
网络编辑岗位职责
2014/03/18 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
大学生英文求职信范文
2015/03/19 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
Python趣味挑战之实现简易版音乐播放器
2021/05/28 Python