Vue_08事件处理

最近在学一点前端的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

相关推荐

  1. Vue - 事件处理详解

    2024-04-04 03:38:02       55 阅读
  2. vue3--事件处理

    2024-04-04 03:38:02       42 阅读
  3. vue 事件处理

    2024-04-04 03:38:02       40 阅读
  4. Vue2事件处理

    2024-04-04 03:38:02       32 阅读
  5. 前端vue2学习(事件处理)总结

    2024-04-04 03:38:02       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-04 03:38:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-04 03:38:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-04 03:38:02       82 阅读
  4. Python语言-面向对象

    2024-04-04 03:38:02       91 阅读

热门阅读

  1. 反转链表1

    2024-04-04 03:38:02       44 阅读
  2. C 从函数返回指针

    2024-04-04 03:38:02       34 阅读
  3. 最大子序列和问题的求解

    2024-04-04 03:38:02       38 阅读
  4. 深度学习| Pytorch实现DiseLoss代码

    2024-04-04 03:38:02       36 阅读
  5. ubuntu安装和缷载squid

    2024-04-04 03:38:02       38 阅读
  6. llama-factory简介

    2024-04-04 03:38:02       34 阅读
  7. Docker安装Kafka

    2024-04-04 03:38:02       33 阅读
  8. 给计算机入坑的寄语吧

    2024-04-04 03:38:02       36 阅读