VUE3 事件的处理

news2025/1/11 8:26:33

在 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.coloradmin.cn/o/2274814.html

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

相关文章

Linux中SSH服务(二)

一、基于公私钥的认证&#xff08;免密登录&#xff09; 1、Windows免密登录Linux Windows推荐安装Cygwin软件&#xff1a;Cygwin 1.1Windows上面生成公私钥 之前已经生成过了&#xff0c;所以显示公私钥已存在 lovezywLAPTOP-AABHB5ED ~ $ ssh-keygen Generating public/pr…

.NET Core NPOI 导出图片到Excel指定单元格并自适应宽度

NPOI&#xff1a;支持xlsx&#xff0c;.xls&#xff0c;版本>2.5.3 XLS&#xff1a;HSSFWorkbook&#xff0c;主要前缀HSS&#xff0c; XLSX&#xff1a;XSSFWorkbook&#xff0c;主要前缀XSS&#xff0c;using NPOI.XSSF.UserModel; 1、导出Excel添加图片效果&#xff0…

NS2202X 系列 40V 输入 OVP 保护 IC

1 特性  最大输入电压&#xff1a; 40V  内部预设 2.1A 负载过流 OCP 保护  外置过流保护阈值可调节引脚&#xff0c;可悬空  外置 EN 使能控制引脚  内部预设 6V 输入过压 OVP 保护  输入 OVP 保护响应时间 20ns  内置 150 ℃过温…

Web前端基础知识(七)

要在JS中获取元素节点&#xff0c;需要使用DOM API提供的方法。 innerHTML&#xff1a;不仅会返回一个纯文本&#xff0c;还可以解析一下这个文本中的语意。 innerText: 忽略HTML标记。 举例&#xff1a; <body> <div id"box1">这是一个ID选择器标签…

[Transformer] The Structure of GPT, Generative Pretrained Transformer

The Structure of Generative Pretrained Transformer Reference: The Transformer architecture of GPT models How GPT Models Work

欧拉公式和傅里叶变换

注&#xff1a;英文引文机翻&#xff0c;未校。 中文引文未整理去重&#xff0c;如有异常&#xff0c;请看原文。 Euler’s Formula and Fourier Transform Posted byczxttkl October 7, 2018 Euler’s formula states that e i x cos ⁡ x i sin ⁡ x e^{ix} \cos{x} i …

【python基础——异常BUG】

什么是异常(BUG) 检测到错误,py编译器无法继续执行,反而出现错误提示 如果遇到错误能继续执行,那么就捕获(try) 1.得到异常:try的执行,try内只可以捕获一个异常 2.预案执行:except后面的语句 3.传入异常:except … as uestcprint(uestc) 4.没有异常:else… 5.鉴定完毕,收尾的语…

Python 模块 Uvicorn 实战指南

文章目录 1. 介绍和安装1.1 介绍1.2 安装 2. 创建基础应用2.1 简单的 HTTP 应用2.2 添加日志 3. 实现高级功能3.1 支持 WebSocket3.2 优化运行性能 4. Nginx 配置反向代理4.1 安装与配置 Nginx4.2 启用 SSL 支持4.3 性能优化建议 5. 常见问题与解决方案5.1 高并发问题5.2 WebSo…

音频数据增强:提升音频信号质量的多种技术

在音频处理和机器学习领域&#xff0c;音频数据增强是一种常用的技术&#xff0c;旨在通过对原始音频信号进行各种变换和处理&#xff0c;生成更多样化的训练数据。   这不仅可以提高模型的鲁棒性&#xff0c;还能改善其在真实世界应用中的表现。本文将介绍几种常用的音频数据…

uniapp vue2版本如何设置i18n

如何设置i18n在该软件设置过语言的情况下优先选择所设置语言&#xff0c;在没有设置的情况下&#xff0c;获取本系统默认语言就&#xff0c;将系统默认语言设置为当前选择语言。 1、下载依赖&#xff1a; npm install vue-i18n --save 2、创建相关文件&#xff08;在最外层&…

vulnhub靶场【DC系列】之9 the final 结束篇

前言 靶机&#xff1a;DC-8&#xff0c;IP地址为192.168.10.11&#xff0c;后续因为靶机重装&#xff0c;IP地址变为192.168.10.13 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.2 都采用VMWare&#xff0c;网卡为桥接模式 对于文章中涉及到的靶场以及工具&#xf…

网络安全 | 网络安全法规:GDPR、CCPA与中国网络安全法

网络安全 | 网络安全法规&#xff1a;GDPR、CCPA与中国网络安全法 一、前言二、欧盟《通用数据保护条例》&#xff08;GDPR&#xff09;2.1 背景2.2 主要内容2.3 特点2.4 实施效果与影响 三、美国《加利福尼亚州消费者隐私法案》&#xff08;CCPA&#xff09;3.1 背景3.2 主要内…

基于QT和C++的实时日期和时间显示

一、显示在右下角 1、timer.cpp #include "timer.h" #include "ui_timer.h" #include <QStatusBar> #include <QDateTime> #include <QMenuBar> Timer::Timer(QWidget *parent) :QMainWindow(parent),ui(new Ui::Timer) {ui->setup…

STM32小实验2

定时器实验 TIM介绍 TIM&#xff08;Timer&#xff09;定时器 定时器可以对输入的时钟进行计数&#xff0c;并在计数值达到设定值时触发中断 16位计数器、预分频器、自动重装寄存器的时基单元&#xff0c;在72MHz计数时钟下可以实现最大59.65s的定时 不仅具备基本的定时中断…

【软考】软件设计师

「学习路线」&#xff08;推荐该顺序学习&#xff0c;按照先易后难排序&#xff09; 1、上午题—计算机系统&#xff08;5~6分&#xff09;[1.8; ] 2、上午题—程序设计语言&#xff08;固定6分&#xff09;[1.9; ] 3、下午题—试题一&#xff08;15分&#xff09; 4、上午题—…

2030年中国AI人才缺口或达400万,近屿智能助力AI人才储备增长

在当今数字化浪潮下&#xff0c;人工智能&#xff08;AI&#xff09;已成为推动各行业发展的关键力量。然而&#xff0c;吸引和留住 AI 人才正成为全球性难题&#xff0c;中国亦不例外。据麦肯锡 2022 年全球人工智能商业高管调查&#xff0c;75% 的中国受访者在招聘数据科学家…

一块钱的RISC-V 32位芯片

‍‍ ‍‍之前跟一个朋友聊天&#xff0c;说以后的芯片一定是越来越趋向于定制化&#xff0c;比如我们需要一个ADC芯片&#xff0c;这颗ADC芯片需要有串口功能&#xff0c;那就只开发一颗这样的芯片就好了&#xff0c;其他的功能都可以裁剪掉。 ➵➵➵➵➵➵➵➵➵➵➵➵➵➵➵…

rk3568平台Buildroot编译实践:内核rootfs定制 及常见编译问题

目录 编译前准备常规编译流程定制内核修改内核 参数并增量 保存修改rootfs并增量 保存修改rootfs包下载源rootfs软件包增删refBuildroot 是一个用于自动化构建嵌入式 Linux 系统的工具。它通过使用简单的配置文件和 Makefile,能够从源代码开始交叉编译出一个完整的、可以运行在…

机器翻译优缺点

随着科技的飞速发展&#xff0c;机器翻译是近年来翻译行业的热门话题&#xff0c;在人们的生活和工作中日益普及&#xff0c;使用机器能够提高翻译效率&#xff0c;降低成本。尽管关于机器翻译为跨语言交流带来了诸多便利&#xff0c;但在译文的正确率和局限性方面存在一定争议…

R 语言科研绘图 --- 折线图-汇总

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…