详解Vue3中的事件监听方式

本文主要介绍Vue3中的事件监听方式。
目录
- 一、v-on指令
- 二、使用@符号简写
- 三、事件修饰符
- 四、动态事件名
- 五、常见的监听事件
- 六、自定义事件
在Vue3中,事件监听的方式与Vue2有一些不同。
下面是Vue3中事件监听方式的详细介绍:
一、v-on指令
Vue3中仍然使用v-on指令来绑定事件处理函数。例如,可以使用v-on:click来监听点击事件:
<button v-on:click="handleClick">Click me</button>
在组件的方法中定义事件处理逻辑:
methods: {handleClick() {console.log('Button clicked');}
}
二、使用@符号简写
Vue3中引入了一个新的语法糖,可以使用@符号来代替v-on指令,更加简洁易读。例如,可以使用@click来监听点击事件:
<button @click="handleClick">Click me</button>
三、事件修饰符
Vue3中仍然支持事件修饰符,可以使用.stop、.prevent、.capture和.once来控制事件的行为。例如,可以使用.stop修饰符阻止事件冒泡:
<div @click.stop="handleClick">Click me</div>
四、动态事件名
Vue3中可以使用动态表达式来指定事件名。
例如,可以使用v-bind:动态事件名来动态绑定事件处理函数。动态事件名可以是一个计算属性的结果,或者是一个组件的属性。例如:
<button v-bind:[eventName]="handleClick">{{ buttonText }}</button>
data() {return {eventName: 'click',buttonText: 'Click me',}
},
methods: {handleClick() {console.log('Button clicked');}
}
五、常见的监听事件
在Vue3中,有以下几种常见的事件:
-
点击事件(click):当元素被点击时触发。
<button @click="handleClick">Click me</button> -
输入事件(input):当输入框的值发生改变时触发。
<input type="text" @input="handleInput" /> -
提交事件(submit):当表单提交时触发。
<form @submit="handleSubmit"><input type="text" /><button type="submit">Submit</button> </form> -
鼠标移入事件(mouseenter):当鼠标移入元素时触发。
<div @mouseenter="handleMouseEnter">Mouse Enter</div> -
鼠标移出事件(mouseleave):当鼠标移出元素时触发。
<div @mouseleave="handleMouseLeave">Mouse Leave</div> -
键盘事件(keydown、keyup):当按下或释放键盘上的键时触发。
<input type="text" @keydown="handleKeyDown" /> -
聚焦事件(focus):当元素获得焦点时触发。
<input type="text" @focus="handleFocus" /> -
失焦事件(blur):当元素失去焦点时触发。
<input type="text" @blur="handleBlur" />
这些只是Vue3中的一些常见事件示例,实际上还有许多其他事件可供使用。
此外,Vue3还支持自定义事件,可以使用$emit方法在组件内触发自定义事件,并在父组件中监听并处理这些事件。
六、自定义事件
Vue3中使用emit方法来触发自定义事件。在父组件中使用v-on监听事件,然后在子组件中使用emit方法触发事件。例如:
<template><button @click="handleClick">Click me</button>
</template><script>
import { defineEmit } from 'vue';export default {emits: ['customEvent'],methods: {handleClick() {this.$emit('customEvent', 'Hello from child component');}}
}
</script>
父组件中监听自定义事件并处理:
<template><ChildComponent @customEvent="handleCustomEvent" />
</template><script>
export default {methods: {handleCustomEvent(message) {console.log(message);}}
}
</script>
在Vue3中,事件处理的方式基本与Vue2保持一致,但引入了一些新的语法糖,如@符号简写和动态事件名。同时,Vue3还支持自定义事件的触发和监听。这些改进使得事件处理更加简洁和灵活。
相关文章:
详解Vue3中的事件监听方式
本文主要介绍Vue3中的事件监听方式。 目录 一、v-on指令二、使用符号简写三、事件修饰符四、动态事件名五、常见的监听事件六、自定义事件 在Vue3中,事件监听的方式与Vue2有一些不同。 下面是Vue3中事件监听方式的详细介绍: 一、v-on指令 Vue3中仍然使…...
Unity关于easySave2 easySave3保存数据的操作;包含EasySave3运行报错的解决
关于easySave2 easySave3保存数据的操作;包含EasySave3运行报错的解决 /// 数据存储路径(Easy Save的默认储存位置为:Application.persistentDataPath,为了方便我们可以给它指定储存路径) #region 存储数据/*/// /// 存…...
2022年全球软件质量效能大会(QECon上海站)-核心PPT资料下载
一、峰会简介 近年来,以云计算、移动互联网、物联网、工业互联网、人工智能、大数据及区块链等新一代信息技术构建的智能化应用和产品出现爆发式增长,突破了对于软件形态的传统认知,正以各种展现方式诠释着对新型智能软件的定义。这也使得对…...
【python报错】UserWarning: train_labels has been renamed targets
UserWarning: train_labels has been renamed targetswarnings.warn(“train_labels has been renamed targets”) 这是一条 Python 警告信息,它表示 train_labels 这个变量已经被重命名为 targets,在将来的版本中可能会移除 train_labels。因此&#x…...
算法专题四:前缀和
前缀和 一.一维前缀和(模板):1.思路一:暴力解法2.思路二:前缀和思路 二. 二维前缀和(模板):1.思路一:构造前缀和数组 三.寻找数组的中心下标:1.思路一:前缀和 四.除自身以外数组的乘积ÿ…...
STM32学习笔记十五:WS2812制作像素游戏屏-飞行射击游戏(5)探索动画之帧动画
本章又是个重要的章节——动画。 动画,本质上时一系列静态的画面连续播放,欺骗人眼产生动画效果。这个原理自打十九世纪电影诞生开始,就从来没变过。 我们的游戏中也需要一些动画效果,比如,被击中时的受伤效果&#…...
期末复习(程序设计)
根据字符出现频率排序 【问题描述】 给定一个字符串 s ,根据字符出现的 频率 对其进行降序排序。一个字符出现的频率是它出现在字符串中的次数。 返回已排序的字符串。 频率相同的的字符按ascii值降序排序。 s不包含空格、制表符、换行符等特殊字符。 【输入格…...
html-css-js移动端导航栏底部固定+i18n国际化全局
需求:要做一个移动端的仿照小程序的导航栏页面操作,但是这边加上了i18n国家化,由于页面切换的时候会导致国际化失效,所以写了这篇文章 1.效果 切换页面的时候中英文也会跟着改变,不会导致切换后回到默认的语言 2.实现…...
Ubuntu Linux 入门指南:面向初学者
目录 1. Ubuntu Linux 简介 Ubuntu 的由来 Ubuntu 与其他 Linux 发行版的比较 Debian: Fedora: openSUSE: Arch Linux: Linux Mint: 第二部分:安装 Ubuntu 1. 准备安装 系统需求 创建 Ubuntu 启…...
常见算法面试题目
前言 总结一些常见的算法题目,每一个题目写一行思路,方便大家复习。具体题目的来源是下面的网站。 剑指offer 剑指offe2 leetcode200题 leetcode 100题 leetcode150题 leetcode 75题 文章目录 前言二叉树非递归遍历牛客JZ31 栈的压入、弹出序列 (…...
PiflowX组件-JDBCWrite
JDBCWrite组件 组件说明 使用JDBC驱动向任意类型的关系型数据库写入数据。 计算引擎 flink 有界性 Sink: Batch Sink: Streaming Append & Upsert Mode 组件分组 Jdbc 端口 Inport:默认端口 outport:默认端口 组件属性 名称展示名称默…...
算法导论复习题目
这题需要考虑什么呢? 一换元,二要使用主方法猜出结果,三是证明的时候添加一个低阶项来消除 LC检索 C(x)是从上帝视角来看的成本 对C(x)的一个估计: 由两个部分组成,就相当于由以往的经验对未来…...
HTTPS协议详解
目录 前言 一、HTTPS协议 1、加密是什么 2、为什么要加密 二、常见加密方式 1、对称加密 2、非对称加密 三、数据摘要与数据指纹 1、数据摘要 2、数据指纹 四、HTTPS加密策略探究 1、只使用对称加密 2、只使用非对称加密 3、双方都使用非对称加密 4、对称加密非…...
菜鸟学习vue3笔记-vue3 router回顾
1、路由router pnpm i vue-router2、创建使用环境 1.src下创建 router文件夹、里面创建index.ts文件 //创建一个路由暴露出去//1.引入createRouter import { createRouter, createWebHistory } from "vue-router";// import Home from ../components/Home.vue//…...
Mybatis枚举类型处理和类型处理器
专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…...
2023 NCTF writeup
CRYPTO Sign 直接给了fx,gx,等于私钥给了,直接套代码,具体可以参考: https://0xffff.one/d/1424 fx [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…...
golang的大杀器协程goroutine
在Golang中,协程(Goroutine)是轻量级的执行单元,用于实现并发编程。它是Golang语言的重要组成部分,提供了简洁、高效的方式来处理并发任务。 特点: 1)轻量级:Go语言的协程是轻量级…...
[Angular] 笔记 9:list/detail 页面以及@Output
1. Output input 好比重力,向下传递数据,list 传给 detail,smart 组件传给 dumb 组件,父组件传给子组件。input 顾名思义,输入数据给组件。 output 与之相反,好比火箭,向上传递数据或事件。ou…...
Linux学习笔记(一)
如果有自己的物理服务器请先查看这篇文章 文章目录 网卡配置Linux基础指令ls:列出目录内容cd(mkdir.rmkdir): 切换文件夹(创建,删除操作)cp:复制文件或目录mv:文件/文件夹移动cat:查看文件vi:文件查看编辑man:查看命令手册more: 查看文件内容less : 查看文件内容 ps: 显示当前进…...
Python 爬虫 教程
python爬虫框架:Scrapyd,Feapder,Gerapy 参考文章: python爬虫工程师,如何从零开始部署ScrapydFeapderGerapy? - 知乎 神器!五分钟完成大型爬虫项目 - 知乎 爬虫框架-feapder - 知乎 scrap…...
计算机毕设 java 基于 Java+Spring 的疫苗接种管理系统的设计与实现 智能疫苗接种预约系统 疫苗接种全流程管理平台
计算机毕设 java 基于 JavaSpring 的疫苗接种管理系统的设计与实现 69geq9(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享在社会对公共卫生安全愈发重视的背景下,疫苗接种作为重要…...
通义千问3-Reranker-0.6B入门指南:app.py核心逻辑解析+自定义路由扩展
通义千问3-Reranker-0.6B入门指南:app.py核心逻辑解析自定义路由扩展 1. 引言 如果你正在寻找一个既轻量又强大的中文重排序模型,那么通义千问3-Reranker-0.6B绝对值得你花时间了解一下。这个只有6亿参数的模型,在文本检索和排序任务上的表…...
BiliTools跨平台哔哩哔哩工具箱:从入门到精通的全方位指南
BiliTools跨平台哔哩哔哩工具箱:从入门到精通的全方位指南 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持视频、音乐、番剧、课程下载……持续更新 项目地址: https://gitcode.com/GitHub_Trending/bilit/…...
Xilinx ZYNQ/MPSOC开发者必看:如何为你的PetaLinux 2022.1工程搭建一个高效的本地缓存服务器(sstate downloads)
Xilinx ZYNQ/MPSOC团队开发实战:构建企业级PetaLinux缓存服务器集群 当五个工程师同时对着公司服务器发起全量编译时,机房里传出的风扇轰鸣声总让我想起波音747起飞——这是我们去年某个ZYNQ UltraScale项目的日常。直到我们在本地部署了分布式sstate缓存…...
setup-php 故障排除手册:常见问题解决方案与调试技巧
setup-php 故障排除手册:常见问题解决方案与调试技巧 【免费下载链接】setup-php shivammathur/setup-php: 是一个用于安装和配置 PHP 的脚本,可以方便地安装和配置 PHP 环境。适合对 PHP、环境配置和想要实现 PHP 环境配置的开发者。 项目地址: https…...
MOOTDX零代码金融数据解决方案:3个核心价值点解锁股票数据可视化分析
MOOTDX零代码金融数据解决方案:3个核心价值点解锁股票数据可视化分析 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 一、价值定位:为什么MOOTDX是金融数据获取的最优解 打…...
避坑指南:Webots 2022a在Windows安装后,为什么打不开示例项目?手把手教你排查与修复
Webots 2022a Windows安装避坑指南:示例项目无法加载的终极解决方案 当你满怀期待地在Windows上安装好Webots R2022a,准备开始机器人仿真之旅时,却发现内置的示例项目一片空白或频繁报错——这种挫败感我深有体会。作为一款功能强大的机器人仿…...
LaTeX algorithm2e避坑指南:为什么你的\tcp*注释后面总多个分号?
LaTeX algorithm2e避坑指南:为什么你的\tcp*注释后面总多个分号? 第一次在LaTeX中用algorithm2e写算法伪代码时,很多人会被\tcp*这个看似简单的注释命令坑到——明明只是想加个注释,结果代码末尾莫名其妙多出个分号,排…...
科研心路历程篇(1)——从仿真到实验:一名电机控制硕士的工程实践与认知迭代
1. 从仿真到实验的认知跨越 第一次在电脑上看到电机仿真波形完美运行时,我以为自己已经掌握了电机控制的精髓。直到真正面对实验室里那台嗡嗡作响的电机时,才发现理论和现实之间隔着一道鸿沟。记得当时用Simulink搭建的永磁同步电机模型,电流…...
Cogito-V1-Preview-Llama-3B开发环境配置:从零开始安装Python及必备库
Cogito-V1-Preview-Llama-3B开发环境配置:从零开始安装Python及必备库 想玩转Cogito-V1-Preview-Llama-3B这样的AI模型,第一步不是研究复杂的算法,而是把“地基”打好。这个地基,就是你的开发环境。很多朋友兴致勃勃地下载了模型…...
