vue.js事件处理器是什么

发布时间 - 2026-01-11 00:16:10    点击率:

监听事件

可以用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被销毁时,所有的事件处理器都会自动被删除,你无须担心如何自己清理它们。

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


# vue.js  # 事件处理器  # 浅谈Vue.js中的v-on(事件处理)  # 详解vue.js的事件处理器v-on:click  # Vue.js事件处理器与表单控件绑定详解  # Vue.js每天必学之方法与事件处理器  # Vue.js 2.0 和 React、Augular等其他前端框架大比拼  # 前端框架Vue.js中Directive知识详解  # Vue.js前端框架之事件处理小结  # 修饰符  # 可以用  # 自定义  # 绑定  # 而不是  # 鼠标  # 还能  # 为你  # 把它  # 要在  # 只会  # 可以通过  # 注意到  # 不像  # 都很  # 有几个  # 可以使用  # 按下  # 写在  # 方法来 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 米侠浏览器网页图片不显示怎么办 米侠图片加载修复  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  canvas 画布在主流浏览器中的尺寸限制详细介绍  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  成都品牌网站制作公司,成都营业执照年报网上怎么办理?  如何获取上海专业网站定制建站电话?  如何用y主机助手快速搭建网站?  JavaScript常见的五种数组去重的方式  如何续费美橙建站之星域名及服务?  在Oracle关闭情况下如何修改spfile的参数  JS经典正则表达式笔试题汇总  Laravel模型事件有哪些_Laravel Model Event生命周期详解  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  Laravel怎么使用Blade模板引擎_Laravel模板继承与Component组件复用【手册】  php在windows下怎么调试_phpwindows环境调试操作说明【操作】  Laravel如何生成PDF或Excel文件_Laravel文档导出工具与使用教程  百度浏览器如何管理插件 百度浏览器插件管理方法  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  如何在宝塔面板中创建新站点?  长沙做网站要多少钱,长沙国安网络怎么样?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在阿里云香港服务器快速搭建网站?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  如何登录建站主机?访问步骤全解析  如何快速搭建个人网站并优化SEO?  活动邀请函制作网站有哪些,活动邀请函文案?  网站建设整体流程解析,建站其实很容易!  太平洋网站制作公司,网络用语太平洋是什么意思?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  如何快速生成橙子建站落地页链接?  如何获取PHP WAP自助建站系统源码?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  如何用美橙互联一键搭建多站合一网站?  EditPlus中的正则表达式实战(5)  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel Fortify是什么,和Jetstream有什么关系  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel如何配置和使用缓存?(Redis代码示例)  如何用搬瓦工VPS快速搭建个人网站?