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获得地址栏参数的两种方法
Nov 08 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
May 07 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
JavaScript AOP编程实例
Jun 16 Javascript
JS原型、原型链深入理解
Feb 27 Javascript
JS添加删除DIV的简单实例
Jul 08 Javascript
JavaScript中的子窗口与父窗口的互相调用问题
Feb 08 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
May 17 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
Nov 11 Javascript
12条写出高质量JS代码的方法
Jan 07 Javascript
对vue 键盘回车事件的实例讲解
Aug 25 Javascript
JS实现的类似微信聊天效果示例
Jan 29 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中改变图片的尺寸大小的代码
2011/07/17 PHP
php切割页面div内容的实现代码分享
2012/07/31 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
phpStudy2016 配置多个域名期间遇到的问题小结
2017/10/19 PHP
PHP实现普通hash分布式算法简单示例
2018/08/06 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
Firefox getBoxObjectFor getBoundingClientRect联系
2008/10/26 Javascript
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
浅析javascript中的DOM
2015/03/01 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
2017/08/15 Javascript
Vue组件通信之Bus的具体使用
2017/12/28 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
jquery ajaxfileuplod 上传文件 essyui laoding 效果【防止重复上传文件】
2018/05/26 jQuery
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Python装饰器基础详解
2016/03/09 Python
python MySQLdb使用教程详解
2018/03/20 Python
对pandas中apply函数的用法详解
2018/04/10 Python
Python如何使用k-means方法将列表中相似的句子归类
2019/08/08 Python
Python随机函数库random的使用方法详解
2019/08/21 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
python如何建立全零数组
2020/07/19 Python
比驿:全球酒店比价网
2018/06/20 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
暑期学习心得体会
2014/09/02 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
退货证明模板
2015/06/23 职场文书
天气温馨提示语
2015/07/14 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技