Vue核心基础2:事件处理 和 事件修饰符

1 事件处理

1.1 点击事件

<body><div id="root"><h1>姓名: {{ name }}</h1><h1>地址: {{ address }}</h1><!-- <button v-on:click="showInfo">提示信息</button> --><!-- 简写形式 --><button @click="showInfo1">提示信息1(不传参)</button><button @click="showInfo2($event, 66)">提示信息2(传参)</button></div><script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {showInfo1(event) {// alert('同学你好!')console.log(event.target.tagName)console.log(this)  // 此处的this是vm},showInfo2(event, number) {console.log(event.target.tagName)console.log(number)}}})</script>
</body>

2 事件修饰符

2.1 prevent 阻止默认事件

<a href="http://www.baidu.com" @click.prevent="showInfo">百度</a>
    <script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {showInfo(e) {alert('同学你好!')// e.preventDefault() // 阻止默认行为 ->  vue中有简洁的写法 @click.prevent}}})</script>

2.2 stop 阻止事件冒泡

<div class="demo1" @click="showInfo1"><button @click.stop="showInfo1">点我提示信息</button>
</div>
    <script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {showInfo1(e) {alert('同学你好 1111')// e.stopPropagation() // 阻止事件冒泡 ->  vue中有简洁的写法 @click.stop},}})</script>

2.3 once 事件只触发一次

<button @click.once="showInfo2">点我提示信息</button>
    <script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {showInfo2(e) {alert('同学你好 2222')},}})</script>

2.4 capture 使用事件的捕获模式, 正常在冒泡阶段处理事件,通过这个可以在捕获阶段处理事件

<div class="demo1" @click.capture="showInfo3(1)"><button @click="showInfo3(2)">点我提示信息</button>
</div>
    <script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {showInfo3(msg) {console.log(msg)   // 先1后2// 原本在冒泡阶段处理事件,应是先输出2,再输出1},}})</script>

2.5 self 只有event.target是当前操作的元素时才触发事件

<!-- 在下述中,因为当前操作的元素是button,所以不触发div -->
<div class="demo1" @click.self="showInfo4"><button @click="showInfo4">点我提示信息</button>
</div>
    <script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {showInfo4(e) {console.log(e.target)  // <button>点我提示信息</button>},}})</script>

2.6 passive 事件的默认行为立即执行, 无需等待事件回调执行完毕

<!-- @scroll 为滚动条滚动 --><!-- <ul @scroll="demo" class="list"><li>1</li><li>2</li><li>3</li><li>4</li></ul> --><!-- @wheel 为鼠标滚轮滚动  但是滚到最后的位置,仍然触发 --><ul @wheel.passive="demo" class="list"><li>1</li><li>2</li><li>3</li><li>4</li></ul>
    <script>const vm = new Vue({el: '#root',data: {name: '张三',address: '北京'},methods: {demo() {console.log('滚动了')}}})</script>

3 键盘事件

<body><div id="root"><input type="text" placeholder="按下回车提示输入" @keyup.enter="showInfo"><!-- CapsLock  切换大小写键, 写法需要用斜杠连接才有效果 --><input type="text" placeholder="按下回车提示输入" @keyup.caps-lock="showInfo"></div><script>// Vue.config.keyCodes.huiche = 13  // 定义了一个回车别名按键const vm = new Vue({el: '#root',data: {name: 'Vue'},methods: {showInfo(e) {// if (e.keyCode !== 13) return    传统做法console.log(e.target.value)// console.log(e.key, e.keyCode)}}})</script>
</body>

总结:

1.Vue中常用的按键别名:
            回车  =>  enter
            删除  =>  delete (捕获“删除” 和 “退格”键)
            退出  =>  esc
            空格  =>  space
            换行  =>  tab  (特殊,必须配合keydown使用)
            上   =>  up
            下   =>  down
            左  =>  left
            右  =>  right

2. Vue未提到别名的按键,可以使用按键原始的Key值绑定,但注意用短横线连接

3. 系统修饰键(用法特殊):ctrl, shfit, alt, win/meta
            (1).这几个键配合keyup使用:按下修饰键,再按下其他键,随后释放其他键,事件才被触发(想要指定特定的键可以, 比如指定y: @keyup.ctrl.y)
            (2).配合keydown使用:正常触发事件

4.也可以使用keyCode去指定具体的按键(不推荐)

5. Vue.config.keyCodes.自定义键名 = 键码     可以去定制按键别名

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

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

相关文章

Spring中常见的设计模式

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性、更具有灵活、优雅&#xff0c;而Spring中共有九种常见的设计模式 工厂模式 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一。这种类型的设计模式属于…

Linux命令-blkid命令(查看块设备的文件系统类型、LABEL、UUID等信息)

说明 在Linux下可以使用 blkid命令 对查询设备上所采用文件系统类型进行查询。blkid主要用来对系统的块设备&#xff08;包括交换分区&#xff09;所使用的文件系统类型、LABEL、UUID等信息进行查询。要使用这个命令必须安装e2fsprogs软件包。 语法 blkid -L | -U blkid [-c…

C __attribute__编译属性整理

背景 最近在看VPP源码&#xff0c;很多变量、函数都设置了编译属性&#xff0c;编译属性的作用却不是很明确&#xff0c;为了增加记忆以及方便日后查阅&#xff0c;在此整理并分享给大家。 概念 __attribute__是GCC的一大特色&#xff0c;attribute机制可以用于设置函数属性&a…

C语言数据结构:数组 vs 链表的性能评估与适用场景

本文将介绍C语言中的数据结构数组和链表&#xff0c;并对它们的性能进行评估&#xff0c;并提供适用场景的建议。 首先&#xff0c;让我们深入了解数组和链表的本质和特点。 数组是一种线性数据结构&#xff0c;它由一组相同类型的元素组成&#xff0c;这些元素在内存中连续存…

第5集《佛说四十二章经》

和尚尼慈悲、诸位法师、诸位居士&#xff0c;阿弥陀佛&#xff01; 请大家打开讲义第五面&#xff0c;第三章、割爱去贪。 蕅益大师他把《四十二章经》的内涵分成两个部分&#xff1a;第一部分是第一章、第二章的正道法门&#xff1b;其次&#xff0c;第三章之后共有四十章都…

Java图形化界面编程—— ImageIO 笔记

2.8.4 ImageIO的使用 在实际生活中&#xff0c;很多软件都支持打开本地磁盘已经存在的图片&#xff0c;然后进行编辑&#xff0c;编辑完毕后&#xff0c;再重新保存到本地磁盘。如果使用AWT要完成这样的功能&#xff0c;那么需要使用到ImageIO这个类&#xff0c;可以操作本地磁…

【MATLAB】GA_BP神经网络回归预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 GA_BP神经网络回归预测算法结合了遗传算法&#xff08;Genetic Algorithm, GA&#xff09;和BP神经网络&#xff08;Backpropagation Neural Network, BPNN&#xff09;&#xff0c;用于解…

分享88个文字特效,总有一款适合您

分享88个文字特效&#xff0c;总有一款适合您 88个文字特效下载链接&#xff1a;https://pan.baidu.com/s/1Y0JCf4vLyxIJR6lfT9VHvg?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不…

【PTA|选择题|期末复习】字符串(二)

【PTA|期末复习|选择题】字符串&#xff08;一&#xff09; 2-23 设有数组定义“char array[ ] "China", 则数组array所占的空间为()。 A.4个字节 B.5个字节 C.6个字节 D.7个字节 2-24 有定义“char x[ ] " abcdefg "; char y [ ]{a, b, c, d, e , f, …

Gemini VS GPT-4,当前两大顶级AI模型实测

随着谷歌在AI军备竞赛中急起直追&#xff0c;“有史以来最强大模型”Gemini Advanced终于上线&#xff0c;AI爱好者们总算等来了一款号称能够匹敌GPT-4的大语言模型。 月费19.99美元&#xff08;包含Google One订阅&#xff09;的Gemini Advanced实际表现如何&#xff1f;究竟…

spring boot 通过 application 切换cache使用的服务

上文 spring boot整合 cache 以redis服务 处理数据缓存 便捷开发 我们写了个整合缓存的基本功能 但 其实我也因为很多时候redis服务没起 等等原因 导致缓存功能整个用不了 其实 最简单的就是 将redis相关配置去掉 不过为了方便 我们可以这样 application.yml文件中这样写 spr…

C++进阶(十五)C++的类型转换

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、C语言中的类型转换二、为什么C需要四种类型转换三、C强制类型转换1、static_cast2、reint…

常见的开源机器人操作系统介绍

开源机器人操作系统&#xff08;Open Source Robot Operating Systems&#xff0c;ROS&#xff09;为机器人开发提供了强大的工具和库&#xff0c;使得机器人设计和实现更加高效和便捷。以下是一些常见的开源机器人操作系统&#xff1a; 1. ROS&#xff08;Robot Opera…

[office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法

excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 在日常工作中经常会到用excel&#xff0c;有时需要计算毛重和皮重的时间间隔&#xff0c;具体的计算方式是什么&#xff0c;一起来了解一下吧 在日常工作中经常会到用excel&#xff0c;在整理编辑过磅数据…

Github 2024-02-10 开源项目日报Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-10统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目5Solidity项目1Go项目1Rust项目1PLpgSQL项目1Scala项目1TypeScript项目1 Bluesky Social 应用程序…

Linux--基础开发工具篇(2)(vim)(配置白名单sudo)

目录 前言 1. vim 1.1vim的基本概念 1.2vim的基本操作 1.3vim命令模式命令集 1.4vim底行命令 1.5 异常问题 1.6 批量注释和批量去注释 1.7解决普通用户无法sudo的问题 1.8简单vim配置 前言 在前面我们学习了yum&#xff0c;也就是Linux系统的应用商店 Linux--基础开…

Object类详解

所有类都是Object类的子类&#xff0c;也都具备Object类的所有特性。 Object类的基本特性&#xff1a; 1.Object类是所有类的父类&#xff0c;所有的Java对象都拥有Object类的属性和方法。 2.如果在类的声明中未使用extends&#xff0c;则默认继承Object类。 public class Pe…

2024牛客寒假算法基础集训营2-c Tokitsukaze and Min-Max XOR

来源 题目 Tokitsukaze 有一个长度为 n 的序列 a1,a2,…,an和一个整数 k。 她想知道有多少种序列 b1,b2,…,bm满足&#xff1a; 其中 ⊕\oplus⊕ 为按位异或&#xff0c;具体参见 百度百科&#xff1a;异或 答案可能很大&#xff0c;请输出  mod1e97 后的结果。 输入描述…

「优选算法刷题」:在排序数组中查找元素的第一个和最后一个位置

一、题目 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 1&…

问题排查利器 - 分布式 trace

在分布式系统开发中&#xff0c;系统间的调用往往会横跨多个应用之间的接口。负责的调用链路也导致了&#xff0c;当线上环境出现问题时&#xff0c;例如请求失败、延迟增加或错误发生&#xff0c;我们无法第一时间确定是哪个环节出了问题&#xff0c;这给故障排查和修复带来了…