Vue3事件处理

文章目录

  • Vue3事件处理
    • 1. 概念
    • 2. 实例
      • 2.1 点击按钮次数+1
      • 2.2 v-on 可以接收一个定义的方法来调用
      • 2.3 内联 JavaScript 语句
      • 2.4 事件处理程序中调用多个方法
    • 3. 事件修饰符
    • 4. 按键修饰符

Vue3事件处理

1. 概念

使用 v-on 指令来监听 DOM 事件,从而执行 JavaScript 代码。v-on 指令可以缩写为 @ 符号。

  • 语法格式

    v-on:click="methodName"
    或
    @click="methodName"

2. 实例

2.1 点击按钮次数+1

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Vue 测试实例  v-on 指令来监听 DOM 事件,从而执行 JavaScript代码v-on 指令可以缩写为 @ 符号</title><script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<!--创建一个id为app class为demo的div-->
<div id="app" class="demo">
<!--    定义一个按钮 记录算计次数 实现点击自增-->
<!--    <button v-on:click="counter++">点击次数+1</button>-->
<!--  v-on 指令可以缩写为 @ 符号 --><button @click="counter++">点击次数+1</button><p>按钮被点击了{{ counter }}次</p>
</div><script>//    定义Vue3的HelloVueApp应用const HelloVueApp = {data() {return {counter: 0}}}// 创建HelloVueApp应用,mount('#app') 将 Vue 应用 HelloVueApp 挂载到 <div id="app" class="demo">中Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

在这里插入图片描述

在这里插入图片描述

2.2 v-on 可以接收一个定义的方法来调用

  • 通常情况下,我们需要使用一个方法来调用 JavaScript 方法。
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Vue 测试实例  v-on 可以接收一个定义的方法来调用  v-on 指令可以缩写为 @ 符号</title><script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<!--创建一个id为app class为demo的div-->
<div id="app" class="demo">
<!--    定义一个按钮 记录算计次数 实现点击自增-->
<!--  v-on 指令可以缩写为 @ 符号 设置点击按钮执行自定义的greet方法 --><button @click="greet">点我</button>
</div><script>//    定义Vue3的HelloVueApp应用const HelloVueApp = {data() {return {name: 'Runoob'}},//     定义方法methods: {greet(event) {//     方法greet内部执行操作//     `methods` 内部的 `this` 指向当前活动实例alert('Hello' + this.name + '!')//     `event` 是原生 DOM eventif (event) {alert(event.target.tagName)}}}}// 创建HelloVueApp应用,mount('#app') 将 Vue 应用 HelloVueApp 挂载到 <div id="app" class="demo">中Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

页面效果:点击弹出弹框欢迎,点击确定后再弹出事件名称
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 内联 JavaScript 语句

除了直接绑定到一个方法,也可以用内联 JavaScript 语句:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Vue 测试实例  除了直接绑定到一个方法,也可以用内联 JavaScript 语句用  v-on 指令可以缩写为 @ 符号</title><script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<!--创建一个id为app class为demo的div-->
<div id="app" class="demo">
<!--    定义一个按钮 记录算计次数 实现点击自增-->
<!--  v-on 指令可以缩写为 @ 符号 调用say时就传入参数即要弹出的内容 --><button @click="say('hi')">Say hi!</button><br><button @click="say('what')">Say what</button>
</div><script>//    定义Vue3的HelloVueApp应用const HelloVueApp = {data() {//     返回值为空},//     定义方法methods: {say(message) {//     弹框弹出messagealert(message)}}}// 创建HelloVueApp应用,mount('#app') 将 Vue 应用 HelloVueApp 挂载到 <div id="app" class="demo">中Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

页面效果:点击Say hi弹出hi欢迎信息,点击Say what弹出what
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4 事件处理程序中调用多个方法

事件处理程序中可以有多个方法,这些方法由逗号运算符分隔:

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>Vue 测试实例  事件处理程序中可以有多个方法,这些方法由逗号运算符分隔  v-on 指令可以缩写为 @ 符号</title><script src="https://cdn.staticfile.org/vue/3.2.36/vue.global.min.js"></script>
</head>
<body>
<!--创建一个id为app class为demo的div-->
<div id="app" class="demo">
<!--    定义一个按钮 记录算计次数 实现点击自增-->
<!--  v-on 指令可以缩写为 @ 符号 one() 和 two()执行按钮点击事件 --><button @click="one($event),two($event)">点我</button>
</div><script>//    定义Vue3的HelloVueApp应用const HelloVueApp = {data() {//     返回值为空},//     定义方法methods: {one(event) {alert("第一个事件处理器逻辑...")},two() {alert("第二个事件处理器逻辑...")}}}// 创建HelloVueApp应用,mount('#app') 将 Vue 应用 HelloVueApp 挂载到 <div id="app" class="demo">中Vue.createApp(HelloVueApp).mount('#app')
</script>
</body>
</html>

页面效果:点击按钮弹出弹框
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 事件修饰符

  • Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault()event.stopPropagation()

  • Vue.js 通过由点 . 表示的指令后缀来调用修饰符。

      .stop - 阻止冒泡.capture - 阻止捕获.self - 只监听触发该元素的事件.once - 只触发一次.left - 左键事件.right - 右键事件.middle - 中间滚轮事件.passive 修饰符一般用于触摸事件的监听器,可以用来改善移动端设备的滚屏性能。
    
    <!-- 阻止单击事件冒泡 单击事件将停止传递-->
    <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><!-- click 事件只能点击一次,2.1.4版本新增 -->
    <a v-on:click.once="doThis"></a>
  • 注意:请勿同时使用 .passive.prevent,因为 .passive 已经向浏览器表明了你不想阻止事件的默认行为。如果你这么做了,则 .prevent 会被忽略,并且浏览器会抛出警告。

4. 按键修饰符

  • Vue 允许为 v-on 在监听键盘事件时添加按键修饰符

    <!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
    <input v-on:keyup.13="submit">
    
  • 记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名:

    <!-- 同上 -->
    <input v-on:keyup.enter="submit">
    <!-- 缩写语法 -->
    <input @keyup.enter="submit">
    
      全部按键别名:.enter.tab.delete (捕获 "删除" 和 "退格" 键).esc.space.up.down.left.right
    
  • 系统按键修饰符: 可以使用以下系统按键修饰符来触发鼠标或键盘事件监听器,只有当按键被按下时才会触发

      .ctrl.alt.shift.meta
    
    <!-- Alt + Enter -->
    <input @keyup.alt.enter="clear" /><!-- Ctrl + 点击 -->
    <div @click.ctrl="doSomething">Do something</div>
    

    注意:系统按键修饰符和常规按键不同。与 keyup 事件一起使用时,该按键必须在事件发出时处于按下状态。换句话说,keyup.ctrl 只会在你仍然按住 ctrl 但松开了另一个键时被触发。若你单独松开 ctrl 键将不会触发。

  • 鼠标按钮修饰符:这些修饰符将处理程序限定为由特定鼠标按键触发的事件

      .left.right.middle
    
    <p><!-- Alt + C -->
    <input @keyup.alt.67="clear">
    <!-- Ctrl + Click -->
    <div @click.ctrl="doSomething">Do something</div>
    
  • .exact 修饰符—允许控制由精确的系统修饰符组合触发的事件

    修饰符允许控制触发一个事件所需的确定组合的系统按键修饰符。

    <!--当按下 Ctrl 时 即使 Alt 或 Shift 被一同按下时也会触发 -->
    <button @click.ctrl="onClick">A</button><!-- 有且只有 Ctrl 被按下的时候才触发 -->
    <button @click.ctrl.exact="onCtrlClick">A</button><!-- 没有任何系统修饰符被按下的时候才触发 -->
    <button @click.exact="onClick">A</button>
    

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

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

相关文章

QT:使用普通按钮、网格布局管理器、标签、行编辑器、水平布局管理器、垂直布局管理器做一个小项目

widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> //普通按钮 #include <QGridLayout> //网格布局管理器 #include <QLabel> //标签 #include <QLineEdit> //行编辑器 #include <QHBoxLayo…

Linux关于memory cgroup的几个要点

概述 本文讲述memory cgroup比较容易误解的一些逻辑&#xff0c;如果不太经常使用和解决问题的话&#xff0c;对于memory cgroup的认知会比较浅显&#xff1a;cgroup memory用来限制进程的内存使用&#xff0c;但是我们进一步想如下的问题&#xff1a; 进程的内存可以分很多类…

【数据结构】LinkedList与链表

文章目录 1. ArrayList的缺陷2. 链表2.1 链表的概念及结构2.2 链表的实现1.链表的功能2.初始化链表3.实现功能接口3.1头插添加元素3.2尾插法添加新元素3.3找到下标的前驱节点3.4指定位置插入元素3.5指定元素是否存在3.6找到指定元素的前驱节点3.7删除指定节点3.8删除所有元素为…

Flutter图标

https://fluttericon.cn/ Flutter 内置了丰富的图标。 Icon(Icons.ac_unit)

linux内核分析:线程和进程创建,内存管理

lec18-19:进程与线程创建 lec20-21虚拟内存管理 内核代码,全局变量这些只有一份,但是内核栈有多份,这可能就是linux线程模型1对1模式的由来。通过栈来做的 x86 CPU支持分段和分页(平坦内存模式)两种 分段,选择子那里就有特权标记了

高速DSP系统设计参考指南(一)高速DSP设计面临的挑战

&#xff08;一&#xff09;高速DSP设计面临的挑战 1. 概述2. 一般挑战3. DSP音频系统的挑战4. 视频系统的挑战5. DSP通信系统面临的挑战 资料参考来自TI官网和网络。 1. 概述 DSP芯片&#xff0c;也称数字信号处理器&#xff0c;是一种具有特殊结构的微处理器。DSP芯片的内部…

【开发】视频监控平台EasyCVR分组批量绑定/取消通道功能的后端代码设计逻辑介绍

视频监控平台/视频存储/视频分析平台EasyCVR基于云边端一体化管理&#xff0c;可支持视频实时监控、云端录像、云存储、磁盘阵列存储、回放与检索、智能告警、平台级联等功能。安防监控平台在线下场景中应用广泛&#xff0c;包括智慧工地、智慧工厂、智慧校园、智慧社区等等。 …

二进制 Deploy Kubernetes v1.23.17 超级详细部署

文章目录 1. 预备条件2. 基础配置2.1 配置root远程登录2.2 配置主机名2.3 安装 ansible2.4 配置互信2.5 配置hosts文件2.6 关闭防firewalld火墙2.7 关闭 selinux2.8 关闭交换分区swap2.9 修改内核参数2.10 安装iptables2.11 开启ipvs2.12 配置limits参数2.13 配置 yum2.14 配置…

浅析AI视频智能分析系统人脸检测算法的应用与特点

AI人脸检测算法可以提取人脸和服装的特征&#xff0c;并将其分类为有用的类别&#xff0c;例如性别、年龄和服装颜色。通过搜索这些丰富的属性信息&#xff0c;可以帮助我们轻松找到目标人物&#xff0c;比如通过人脸以图搜图、人脸布控等等。 如何搭建重点部位人脸识别动态布控…

Fuxploider:一款针对文件上传漏洞的安全检测与研究工具

Fuxploider:一款针对文件上传漏洞的安全检测与研究工具 1.概述2. 工具使用1.概述 Fuxploider是一款功能强大的开源渗透测试工具,该工具专门针对文件上传漏洞而设计,可以帮助广大研究人员以自动化的方式检测和利用目标站点文件上传表单中的安全问题 由于该工具基于Python 3…

elasticsearch18-自动补全实战

个人名片&#xff1a; 博主&#xff1a;酒徒ᝰ. 个人简介&#xff1a;沉醉在酒中&#xff0c;借着一股酒劲&#xff0c;去拼搏一个未来。 本篇励志&#xff1a;三人行&#xff0c;必有我师焉。 本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》&#xff0c;SpringCloud…

HUAWEI华为MateBook X Pro 2021款 i7 集显(MACHD-WFE9Q)原装出厂Win10系统20H2

华为笔记本电脑原厂系统自带指纹驱动、显卡驱动、声卡驱动、网卡驱动等所有驱动、出厂主题壁纸、系统属性华为专属LOGO标志、Office办公软件、华为电脑管家等预装程序 链接&#xff1a;https://pan.baidu.com/s/1oeSM0ciwyyRIKms5tR4SNA?pwdo2gq 提取码&#xff1a;o2gq

上海长宁来福士P2.5直径4米无边圆形屏圆饼屏圆面屏圆盘屏平面圆屏异形创意LED显示屏案例

长宁来福士广场是一个大型广场&#xff0c;坐落于上海中山公园商圈的核心区域&#xff0c;占地逾6万平方米&#xff0c;其中地上总建筑面积近24万平方米&#xff0c;总投资额约为96亿人民币。 LED圆形屏是根据现场和客户要求定制的一款异形创意LED显示屏&#xff0c;进行文字、…

SkyWalking快速上手(一)——安装单机版SkyWalking、使用SkyWalking

文章目录 什么是SkyWalking为什么选择SkyWalking安装步骤前置条件环境要求下载 SkyWalking 配置 SkyWalkingSkywalking 使用Agent 配置Collector 配置 启动 SkyWalking配置SkyWalking代理 SkyWalking的监控功能分布式调用链追踪性能指标监控告警和报警 总结 什么是SkyWalking …

vue3中使用el-upload + tui-image-editor进行图片处理

效果如下 看之前请先看上一篇《vue3中使用组件tui-image-editor进行图片处理》中的 1、第一步安装 2、第二部封装组件 本篇只是在这基础上结合el-upload使用组件 3、第三步结合el-upload使用组件 <template><el-dialog:title"dialogTitle":modelValue&qu…

常见的API

常见的 API Math 从 JDK 版本 1 开始的, 用来计算的一些方法 这里面定义了两个常量的 PI 和 E 这两个是最接近 pi 的值和最接近对数的值 Abs (int a ) 取绝对值Ceil (double a)向上取整Floor (double a )向下取整Round (float a)四舍五入Max (int a, int b) 取最大值Pow (dou…

【微信小程序】文章设置

设置基本字体样式&#xff1a;行高、首行缩进 font-size: 32rpx;line-height: 1.6em;text-indent: 2em;padding: 20rpx 0;border-bottom: 1px dashed var(--themColor); 两端对齐 text-align: justify; css文字两行或者几行显示省略号 css文字两行或者几行显示省略号_css…

【C进阶】指针和数组笔试题解析

做题之前我们先来回顾一下 对于数组名的理解&#xff1a;除了以下两种情况&#xff0c;数组名表示的都是数组首元素的地址 &#xff08;1&#xff09;sizeof&#xff08;数组名&#xff09;&#xff1a;这里的数组名表示整个数组 &#xff08;2&#xff09;&&#xff08;数…

Kakfa - Producer机制原理与调优

Producer是Kakfa模型中生产者组件&#xff0c;也就是Kafka架构中数据的生产来源&#xff0c;虽然其整体是比较简单的组件&#xff0c;但依然有很多细节需要细品一番。比如Kafka的Producer实现原理是什么&#xff0c;怎么发送的消息&#xff1f;IO通讯模型是什么&#xff1f;在实…

Prometheus黑盒测试模块,监控TCP端口+ HTTP/HTTPS路由状态

文章目录 一、黑盒测试使用场景二、安装blackbox-exporter三、监控TCP端口四、监控HTTP/HTTPS路由五、最后分享几款Grafana模板 一、黑盒测试使用场景 官方下载地址 blackbox-exporter是Prometheus官方提供的一个黑盒测试的解决方案&#xff0c;可用于以下使用场景&#xff1a…