VUE3 事件的处理

在 Vue.js 中,事件处理是通过 v-on 指令来实现的,允许我们在 DOM 元素上监听用户交互并执行相应的操作。通过事件绑定,Vue.js 可以响应用户的点击、输入、提交等行为。

1. 基本的事件绑定

v-on 指令用于监听事件,并在事件发生时执行方法。

语法:
v-on:event="method"

例如,监听点击事件:

<div id="app"><button v-on:click="handleClick">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick() {alert('Button clicked!');}}});
</script>

在这个例子中,v-on:click 会监听点击事件,并执行 handleClick 方法。

2. 事件修饰符

Vue.js 提供了许多事件修饰符,可以让你更方便地控制事件的行为。常用的修饰符包括:

2.1 .stop:阻止事件冒泡

使用 .stop 修饰符可以阻止事件冒泡。

<div id="app"><button v-on:click.stop="handleClick">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick() {alert('Button clicked!');}}});
</script>

这里,.stop 修饰符会阻止事件冒泡到父元素。

2.2 .prevent:阻止默认行为

使用 .prevent 修饰符可以阻止事件的默认行为。例如,阻止表单提交:

<div id="app"><form v-on:submit.prevent="handleSubmit"><button type="submit">Submit</button></form>
</div><script>new Vue({el: '#app',methods: {handleSubmit() {alert('Form submission prevented!');}}});
</script>

在这个例子中,.prevent 阻止了表单的默认提交行为,防止页面刷新。

2.3 .capture:使用事件捕获模式

默认情况下,事件是通过冒泡机制触发的,.capture 修饰符可以改为使用事件捕获模式。

<div id="app"><button v-on:click.capture="handleClick">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick() {alert('Captured click event!');}}});
</script>

.capture 修饰符会使得事件在捕获阶段触发,而不是在冒泡阶段。

2.4 .once:事件只触发一次

.once 修饰符确保事件只触发一次,之后就会被自动移除。

<div id="app"><button v-on:click.once="handleClick">Click Me Once</button>
</div><script>new Vue({el: '#app',methods: {handleClick() {alert('Button clicked once!');}}});
</script>

3. 修饰符组合

你还可以组合多个修饰符,例如,阻止默认行为并且只触发一次事件:

<div id="app"><button v-on:click.prevent.once="handleClick">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick() {alert('Event triggered!');}}});
</script>

4. 事件监听器的简写语法

Vue.js 提供了一种更简洁的事件绑定语法,使用 @ 作为 v-on 的缩写。

例如:

<div id="app"><button @click="handleClick">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick() {alert('Button clicked!');}}});
</script>

@clickv-on:click 的简写。

5. 事件对象

Vue.js 还提供了对原生 DOM 事件对象的访问。你可以通过方法中的参数来获取事件对象,类似于原生 JavaScript。

<div id="app"><button @click="handleClick">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick(event) {console.log(event);  // 访问原生事件对象}}});
</script>

在这个例子中,handleClick 方法的参数 event 就是原生 JavaScript 的事件对象。

6. 传递参数给事件处理器

有时你可能想要将额外的参数传递给事件处理器。你可以通过使用箭头函数或者 .bind 来实现这一点。

示例 1:使用箭头函数
<div id="app"><button @click="handleClick('Hello')">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick(message) {alert(message);}}});
</script>
示例 2:使用 .bind 传递参数
<div id="app"><button @click="handleClick.bind(null, 'Hello')">Click Me</button>
</div><script>new Vue({el: '#app',methods: {handleClick(message) {alert(message);}}});
</script>

7. 事件修饰符总结

修饰符功能
.stop阻止事件冒泡
.prevent阻止事件的默认行为
.capture使用事件捕获模式
.once事件只触发一次
.passive为事件添加 passive 标志(优化滚动性能)

总结

  • 事件绑定:通过 v-on 或 @ 指令来绑定 DOM 事件。
  • 修饰符:可以通过修饰符控制事件行为,如 .stop.prevent.capture.once
  • 事件对象:事件处理函数可以接受原生 DOM 事件对象。
  • 传递参数:可以通过箭头函数或 .bind 向事件处理器传递额外参数。

Vue.js 的事件系统使得事件管理变得简单高效,适用于各种交互场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/66827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Photon最新版本PUN 2.29 PREE,在无网的局域网下,无法连接自己搭建的本地服务器

1.图1为官方解答 2.就是加上这一段段代码&#xff1a;PhotonNetwork.NetworkingClient.SerializationProtocol SerializationProtocol.GpBinaryV16; 完美解决 unity 商店最新PUN 2 插件 不能连接 &#xff08;环境为&#xff1a;本地局域网 无外网情况 &#xff09; …

消息中间件类型介绍

消息中间件是一种在分布式系统中用于实现消息传递的软件架构模式。它能够在不同的系统或应用之间异步地传输数据&#xff0c;实现系统的解耦、提高系统的可扩展性和可靠性。以下是几种常见的消息中间件类型及其介绍&#xff1a; 1.RabbitMQ 特点&#xff1a; • 基于AMQP&#…

51单片机(二)中断系统与外部中断实验

中断即单片机因为某些原因E暂定现在的工作P0&#xff0c;转去做其他的工作P1&#xff0c;完了之后继续之前的事P0&#xff0c;其他工作P1就是中断程序&#xff0c;原因E就是中断事件&#xff0c;原因由外部发生&#xff0c;程序不能预测到的是硬中断&#xff0c;可以由程度触发…

python-42-使用selenium-wire爬取微信公众号下的所有文章列表

文章目录 1 seleniumwire1.1 selenium-wire简介1.2 获取请求和响应信息2 操作2.1 自动获取token和cookie和agent2.3 获取所有清单3 异常解决3.1 请求url失败的问题3.2 访问链接不安全的问题4 参考附录1 seleniumwire Selenium WebDriver本身并不直接提供获取HTTP请求头(header…

汽车信息安全 -- S32K1如何更新BOOT_MAC

目录 1.安全启动模式回顾 2.为什么要讨论BOOT_MAC 3.S32K1如何更新? 1.安全启动模式回顾 之前提到过,S32K1系列提供了Crypto Service Engine硬件加密模块(简称CSEc),大家可以通过该芯片系统寄存器SDID.FEATURES(System Device Identification Register)来判断自己的片子…

【Python】Python与C的区别

文章目录 语句结束符代码块表示变量声明函数定义注释格式Python的标识符数据输入input()函数数据输出print()函数 语句结束符 C 语言 C 语言中每条语句必须以分号;结束。例如&#xff0c;int a 10;、printf("Hello, World!");。分号是语句的一部分&#xff0c;用于…

理解Unity脚本编译过程:程序集

https://docs.unity3d.com/Manual/script-compilation.html 关于Unity C#脚本编译的细节&#xff0c;其中一个比较重要的知识点就是如何自定义Assembly。 预定义的assembly 默认情况下&#xff0c;Unity会按照这个规则进行编译。 PhaseAssembly nameScript files1Assembly-…

Linux内核TTY子系统有什么(6)

接前一篇文章&#xff1a;Linux内核TTY子系统有什么&#xff08;5&#xff09; 本文内容参考&#xff1a; Linux TTY子系统框架-CSDN博客 一文彻底讲清Linux tty子系统架构及编程实例-CSDN博客 linux TTY子系统(3) - tty driver_sys tty device driver-CSDN博客 Linux TTY …

《代码随想录》Day31打卡!

《代码随想录》贪心算法&#xff1a;合并区间 本题的完整题目如下所示&#xff1a; 本题的完整思路如下所示&#xff1a; 1.本题依然是先对数组的左边界进行排序。将数组的第一个元素赋值给current。 2.遍历数组&#xff0c;判断current中的右边界和当前元素的左边界是否有重叠…

KL 散度:多维度解读概率分布间的隐秘 “距离”

深入理解KL散度&#xff1a;从多维度全面剖析 损失函数相关文章&#xff08;置顶&#xff09; 1. KL 散度&#xff1a;多维度解读概率分布间的隐秘 “距离” 2. 熵与交叉熵&#xff1a;从不确定性角度理解 KL 散度 3. 机器学习、深度学习关于熵你所需要知道的一切 引言 KL散即…

node-sass@4.14.1报错的最终解决方案分享

输入npm i全安装文件所需的依赖的时候&#xff0c;博主是使用sass去书写的&#xff0c;使用的是node-sass4.14.1和sass-loader7.3.1的版本的&#xff0c;安装的时候老是出现错误&#xff0c; node-sass4.14.1版本不再被支持的原因 node-sass 是一个基于 LibSass 的 Node.js 绑…

设计模式(观察者模式)

设计模式&#xff08;观察者模式&#xff09; 第三章 设计模式之观察者模式 观察者模式介绍 观察者模式&#xff08;Observer Design Pattern&#xff09; 也被称为发布订阅模式 。模式定义&#xff1a;在对象之间定义一个一对多的依赖&#xff0c;当一个对象状态改变的时候…

PyCharm 的安装与使用(Window)

1 PyCharm 简介 PyCharm 是一款由 JetBrains 公司开发的专门用于 Python 语言开发的集成开发环境&#xff08;IDE&#xff09;。以下是其相关介绍&#xff1a; 1.1 特点与功能 智能代码编辑&#xff1a;提供高度智能化的代码编辑器&#xff0c;支持语法高亮、自动补全、代码重…

(vue)el-table-column type=“selection“表格选框怎么根据条件添加禁选

(vue)el-table-column type"selection"表格选框怎么根据条件添加禁选 html <el-table:data"tableData"style"width: 100%"><el-table-columntype"selection"width"55":selectable"checkSelectable">…

C# 之某度协议登录,JS逆向,手机号绑定,获取CK

.NET兼职社区 .NET兼职社区 .NET兼职社区 .NET兼职社区 有需要指导&#xff0c;请私信我留言V或者去社区找客服。

深入Android架构(从线程到AIDL)_20 IPC的Proxy-Stub设计模式02

2、 IBinder接口的一般用途 前言 一般用途 Android的IPC框架仰赖单一的IBinder接口。此时Client端调用IBinder接口的transact()函数&#xff0c;透过IPC机制而调用到远方(Remote)的onTransact()函数。在Java层框架里&#xff0c; IBinder接口实现于Binder基类&#xff0c;如下…

初学stm32 --- ADC单通道采集

目录 ADC寄存器介绍&#xff08;F1&#xff09; ADC控制寄存器 1(ADC_CR1) ADC控制寄存器 2(ADC_CR2) ADC采样时间寄存器1(ADC_SMPR1) ADC采样时间寄存器2(ADC_SMPR2) ADC规则序列寄存器 1(ADC_SQR1) ADC规则序列寄存器 2(ADC_SQR2) ADC规则序列寄存器 3(ADC_SQR3) AD…

FPGA技术的深度理解

目录 引言 FPGA的基本原理 结构组成 工作原理 FPGA的设计流程 设计阶段 编程阶段 实现阶段 FPGA的应用领域 FPGA编程技巧和示例代码 编程技巧 示例代码 结论 引言 FPGA&#xff08;现场可编程门阵列&#xff09;是一种可编程的集成电路&#xff0c;它允许用户根据…

【经典神经网络架构解析篇】【1】LeNet网络详解:模型结构解析、优点、实现代码

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

qml SpringAnimation详解

1. 概述 SpringAnimation 是 Qt Quick 中用于模拟弹簧效果的动画类。它通过模拟物体在弹簧力作用下的反应&#xff0c;产生一种振荡的动画效果&#xff0c;常用于模拟具有自然回弹、弹性和振动的动态行为。这种动画效果在 UI 中广泛应用&#xff0c;特别是在拖动、拉伸、回弹等…