Vue_08事件处理

news2024/11/25 22:55:54

最近在学一点前端的Vue。这篇文章来说说Vue中事件处理

我理解的事件处理就是说能够让用户与我们的系统实现交互操作,我们人发出的动作就是事件,我们需要编写vue来处理我们人类发出的事件。

一、事件处理基础

v-on指令

这里使用的是使用按钮触发一个弹窗,给出提示信息。
<button v-on:click="showInfo">点我提示信息(不传参)</button>
这里使用到了v-on指令表示当点击button时执行一个回调函数showInfo。这个回调函数实现的就是一个弹窗。
也可以使用简易的写法
<button @click="showInfo">点我提示信息(不传参)</button>
const vm = new Vue({
            methods: {
                showInfo(){
                    alert("同学你好!")
                },
            },
        })

在这里插入图片描述
当然这里也可以传递参数,直接在回调函数showInfo后面加括号即可。

<button @click="showInfo(66,$event)">点我提示信息2(传参)</button>

二、事件修饰符

分多个场景

2.1 阻止默认事件

我们知道a标签会在我们执行完click以后,跳转到指定链接,这里我们需要阻止不要跳转,就在click后面增加一个.prevent即可。

<!-- 阻止默认事件(常用) -->
<a href="http://www.bilibili.com" @click.prevent="showInfo">点击提示信息</a>

2.2 阻止事件冒泡

<!-- 阻止事件冒泡()常用 -->
<div @click="showInfo">
    <button @click.stop="showInfo">点我提示信息3</button>
</div>

这里点击button以后会先触发内层的showInfo然后触发外层的showInfo,但是我们希望不要执行外层的showInfo,加一个stop即可。

2.3 事件只触发一次

<!-- 事件只触发一次 -->
<button @click.once="showInfo">点我提示信息4</button>

button点击一次以后再点击不会再执行

2.4 事件捕获

<!-- 以前是先捕获再冒泡执行,加上capture时一边捕获一遍操作 -->
    <!-- 事件捕获操作 -->
    <div class="box1" @click.capture="show(1)">
        div1
        <div class="box2" @click="show(2)">
            div2
        </div>
    </div>

在Vue中两个div会依次进栈(捕捉),然后再依次出栈执行函数(冒泡),我们希望使用队列的方式,在外层增加capture即可。

2.5 只有当event.target时当前元素时才发出操作

 <!--  只有当event.target是当前元素时才出发操作-->
  <div @click.self="showInfo2">
      <button @click="showInfo2">点我提示信息3</button>
  </div>

这里我理解的就是在点击一个div里面的button是会有一个上下文,这里就是内容button的target,此时的event.target与外层的div不同,只需要执行button的回调函数。

2.6 事件异步

<ul @wheel.passive="demo" class = "list">
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
</ul>

wheel、scroll都是移动滑动轮时操作,每次滑动时都需要先等待回调函数demo执行完毕以后才会滑动,加入passive以后每次滑动滑轮不等待demo执行完成自己先执行滑动。类似于fastapi中的异步操作。

三、键盘事件

我理解的是,就是让系统能够捕捉到我们使用键盘操作。

Vue:中常见的按键别名
回车=>enter
删除 => delete(捕获“删除”和“退格”键)
退出 =>esc
空格 =>space
换行 =>tab  (必须需要配合keydown使用)
上 => up
下 => down
左 => left
右 => right
<input type="text" placeholder="按下回车提示输入" @keyup.tab="showInfo">

补充:keydown与keyup区别。keydown按下按键时即触发事件,keyup松开按键时触发事件

系统修饰键

系统修饰键
ctrl、alt、shift、meta
(1)配合keyup操作,按下修饰键的同时,按下其他键再松开其他键时触发事件
(2)配合keydown操作,正常出发事件
修饰符后连写 @keyup.ctrl.y

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

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

相关文章

Kafka入门到实战-第四弹

Kafka入门到实战 Kafka集群搭建官网地址Kafka概述使用Kraft搭建Kafka集群更新计划 Kafka集群搭建 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://kafka.apache.org/Kafka概述 Apache Kafka 是一个开源的分布式事件…

计算机网络——31数据链路层和局域网引论和服务

数据链路层和局域网 WAN&#xff1a;网络形式采用点到点链路 带宽大&#xff0c;距离远&#xff08;延迟大&#xff09; 贷款延迟积大 如果采用多点连接方式 竞争方式&#xff1a;一旦冲突代价大令牌等协调方式&#xff1a;在其中协调节点的发送代价大 点到点链路的链路层服…

学习日记(SSM整合流程_SpringMVC_part_two)

目录 大致流程如下 1、创建工程 2、SSM配置类结构 3、功能模块 代码部分 整体结构 Jdbc.Config MyBatisConfig ServletConfig SpringConfig SpringMvcConfig BookController BookDao Book BusinessException SystemException Cord Result BookService BookserviceImpl jd…

手写红黑树【数据结构】

手写红黑树【数据结构】 前言版权推荐手写红黑树一、理论知识红黑树的特征增加删除 二、手写代码初始-树结点初始-红黑树初始-遍历初始-判断红黑树是否有效查找增加-1.父为黑&#xff0c;直接插入增加-2. 父叔为红&#xff0c;颜色调换增加-3. 父红叔黑&#xff0c;颜色调换&am…

java Web洗衣店管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 洗衣店管理系统是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使用…

优化选址问题 | 基于帝国企鹅算法求解工厂-中心-需求点三级选址问题含Matlab源码

目录 问题代码问题 "帝国企鹅算法"并不是一个广为人知的优化算法,可能是一个特定领域或者特定情境下提出的方法。不过,对于工厂-中心-需求点三级选址问题,它可能是一种启发式优化方法,用于在多个候选位置中选择最优的工厂、中心和需求点位置。 这类问题通常涉及…

IPv4地址

IP v4 由32位二进制构成、可以用点分十进制表示。 例如&#xff1a;192.168.1.1 11000000101010000000000100000001 由网络位和主机位组成。为了区分网络位和主机位&#xff0c;需要用子网掩码&#xff0c;子网掩码也是由32位二进制构成&#xff0c;连续的1对应网络位&#…

PHP的定时任务框架的taskPHP3.0学习记录2(环境要求、配置Redis、crontab执行时间语法、命令操作以及Screen全屏窗口管理器)

环境要求 php版本> 5.5开启socket扩展开启pdo扩展开启shmop扩展 echo <pre>; echo --; $requiredVersion 5.6.0; $currentVersion phpversion(); if (version_compare($currentVersion, $requiredVersion, >)) {echo "1.PHP版本满足要求&#xff0c;当前版…

【笔记】动⼿学深度学习(花书)|| Aston Zhang Mu Li Zachary C. LiptonAlexander J. Smola

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 前言 第一章 深度学习简介 第二章 P 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言本书…

python实战之异常篇

一. try-except语句 二. 多个except代码块 三. 多重异常捕获 四. try-except语句嵌套 五. 使用finally代码块释放资源 六. 自定义异常类 七. 手动引发异常 使用关键字 raise 手动抛异常

Android RecyclerView canScrollVertically方向与返回值,Kotlin

Android RecyclerView canScrollVertically方向与返回值&#xff0c;Kotlin import android.os.Bundle import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView import androidx…

Node | Node.js 版本升级

目录 Step1&#xff1a;下载 Step2&#xff1a;安装 Step3&#xff1a;换源 发现其他博客说的 n 模块不太行&#xff0c;所以老老实实地手动安装 Step1&#xff1a;下载 Node 中文官网&#xff1a;https://nodejs.cn/download 点击后&#xff0c;将会下载得到一个 .msi 文件…

Go-React做一个todolist(服务端)【一】项目初始化

后端仓库地址 地址 项目依赖 # gin go get -u github.com/gin-gonic/gin # viper日志 go get -u github.com/spf13/viper # 数据库和gorm go get -u gorm.io/driver/mysql go get -u gorm.io/gorm # uuid go get -u github.com/google/uuid # token go get -u github.com/go…

蓝桥杯2015年第十三届省赛真题-三羊献瑞

一、题目 观察下面的加法算式&#xff1a; 祥 瑞 生 辉 三 羊 献 瑞 ---------------------- 三 羊 生 瑞 气 (如果有对齐问题&#xff0c;可以参看【图1】) 其中&#xff0c;相同的汉字代表相同的数字&#xff0c;不同的汉字代表不同的数字。 请你填写“三羊献瑞”所…

C语言-编译和链接

目录 1.前言2.编译2.1预处理&#xff08;预编译&#xff09;2.1.1 #define 定义常量2.1.2 #define 定义宏2.1.3带有副作用的宏参数2.1.4宏替换规则2.1.5 #和##2.1.5.1 #运算符2.1.5.2 ## 运算符 2.1.6 命名约定2.1.7 #undef2.1.8 条件编译2.1.9 头文件的包含2.1.9.1 本地文件包…

电商系列之取消订单

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

每日面经分享(Spring Boot: part2 DAO层)

1. Spring Boot DAO层的作用 a. 封装数据访问逻辑&#xff1a;DAO层的主要责任是封装与数据访问相关的逻辑。负责处理与数据库的交互&#xff0c;包括数据的增删改查等操作。通过将数据访问逻辑统一封装在DAO层中&#xff0c;可以提高代码的可维护性和可重用性。 b. 解耦业务逻…

java Web 疫苗预约管理系统用eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP 疫苗预约管理系统是一套完善的web设计系统&#xff0c;对理解JSP java 编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发&#xff0c;数据库为Mysql5.0&#xff0c;使…

蓝桥集训之游戏

蓝桥集训之游戏 核心思想&#xff1a;博弈论 区间dp 设玩家1的最优解为A 玩家2的最优解为B 1的目标就是使A-B最大 2的目标就是使B-A最大 当玩家1取L左端点时 右边子区间结果就是玩家2的最优解B-A 即当前结果为w[L] – (B-A) 当玩家1取R右端点时 左边子区间结果就是玩家2的最…

<TensorFlow学习使用P1>——《TensorFlow教程》

一、TensorFlow概述 前言&#xff1a; 本文中一些TensorFlow综合案例的代码逻辑一般正常&#xff0c;在本地均可运行。如有代码复现运行失败&#xff0c;原因如下&#xff1a; &#xff08;1&#xff09;运行环境配置可能有误。 &#xff08;2&#xff09;由于一些数据集存储空…