• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

vue.js事件处理器是什么

vue 搞代码 4年前 (2022-01-08) 13次浏览 已收录 0个评论

什么是vue.js事件处理器?这篇文章主要介绍了vue.js事件处理器的相关资料

监听事件

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

demo:

 <div>点击,增加1</div><span>{{counter}}</span>
 data:{   counter:0 } 

方法事件处理器

许多事件处理器的逻辑都很复杂,所以直接把javaScript代码写在本文来源gao@!dai!ma.com搞$$代^@码!网v-on指令中是不可行的。因此v-on可以接收一个定义的方法来调用

 <div>点击,增加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 

 <!-- 阻止单击事件冒泡 --><!-- 提交事件不再重载页面 --><!-- 修饰符可以串联 --><!-- 只有修饰符 --><!-- 添加事件侦听器时使用事件捕获模式 --><div>...</div><!-- 只当事件在该元素本身(而不是子元素)触发时触发回调 --><div>...</div>

新增

 <!--点击事件将只会触发一次-->

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

按键修饰符
在监听键盘事件时,我们经常需要监听常见的键值。  Vue允许为v-on在监听事件时添加按键修饰符:

 <!--只有在keyCode是13时调用vm.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被销毁时,所有的事件处理器都会自动被删除,你无须担心如何自己清理它们。

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持gaodaima搞代码网

以上就是vue.js事件处理器是什么的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:vue.js事件处理器是什么

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址