我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue事件修饰符怎么应用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue事件修饰符怎么应用

这篇文章主要介绍了vue事件修饰符怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue事件修饰符怎么应用文章都会有所收获,下面我们一起来看看吧。

    一.速识概念:

    先引用vue官网的话说----在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。
      简单通俗来说就是,我想要实现一些功能的方法,但是我不想写代码,我想有直接封装好的直接拿来用,所以vue就提供了所谓的事件修饰符,我们直接调用就可以达到想要的功能。

    分类如下:

    事件修饰符功能作用
    .stop阻止冒泡
    .prevent阻止默认事件
    .capture捕获冒泡
    .self绑定自身,自身才能触发
    .once事件只能触发一次
    .passive对dom默认事件性能优化

    扩展:按键修饰符、系统修饰符

    二.stop修饰符:

    阻止冒泡,阻止事件向上级DOM元素传递。

      什么是冒泡呢?以下面这个例子,比如有一个天蓝色父盒子,里面包裹了一个绿色子盒子,分别绑定点击事件将输出不同内容:

         <div class="father" @click="father">        <div class="child" @click="child"></div>      </div>
    .father {        width: 200px;        height: 200px;        background-color: skyblue;      }      .child {        width: 100px;        height: 100px;        background-color: green;      }
         father() {        console.log("trigger father");      },      child() {        console.log("trigger child");      },

    &emsp;&emsp;效果如下,可以发现,当点击子盒子时,不仅子盒子事件被触发,连同父盒子的事件也被触发了。而只点父盒子时,只有父盒子事件触发。这就是冒泡,事件会向上级DOM元素传递,由内而外,依次触发。

    vue事件修饰符怎么应用

    &emsp;当使用 .stop 事件修饰符时就能很简单的阻止冒泡了,用法如下,直接给子盒子的点击事件后加上.stop即可:

     <div class="child" @click.stop="child"></div>

    效果如下:

    vue事件修饰符怎么应用

    二.prevent修饰符:

    &emsp;&emsp;阻止默认事件触发。默认事件指对DOM的操作会引起自动执行的动作,比如点击a标签超链接的时候会进行默认进行页面的跳转等等。

    &emsp;&emsp;如下,定义一个超链接:

    <a href="https://auroras.blog.csdn.net/">北极光之夜。</a>

    &emsp;&emsp;正常情况,点击后默认跳转:

    vue事件修饰符怎么应用

    添加prevent事件修饰符,取消默认的点击跳转页面事件:

    <a href="https://auroras.blog.csdn.net/" @click.prevent>北极光之夜。</a>

    看,默认点击跳转页面没了:

    vue事件修饰符怎么应用

    三.capture修饰符:

    &emsp;&emsp;捕获冒泡,即当冒泡发生时,有capture修饰符的dom元素会先执行,如果有多个,从外到内依次
    执行,最后再按自然冒泡顺序执行触发的事件。

    &emsp;&emsp;以下面这个例子,比如有一个天蓝色父盒子,里面包裹了一个绿色子盒子,里面再包裹了一个橙色孙子盒子,分别绑定点击事件将输出不同内容:

    <div class="father" @click="father">        <div class="child" @click="child">          <div class="grandSon" @click="grandSon"></div>        </div>
     .father {        width: 200px;        height: 200px;        background-color: skyblue;      }      .child {        width: 100px;        height: 100px;        background-color: green;      }      .grandSon {        width: 50px;        height: 50px;        background-color: orange;      }
     father() {            console.log("trigger father");          },          child() {            console.log("trigger child");          },          grandSon() {            console.log("trigger granSon");          },

    当点击孙子盒子时,会产生冒泡,由内而外,依次顺序执行事件:

    vue事件修饰符怎么应用

    我们给处于中间的子盒子添加.capture修饰符捕获冒泡事件,这样当点击孙子盒子时,会先执行子盒子后,再按正常冒泡顺序依次执行孙子盒子与父盒子:

    <div class="child" @click.capture="child">

    vue事件修饰符怎么应用

    四.self修饰符:

    将事件绑定到自身,只有自身才能触发,通常用于避免冒泡事件的影响。

    &emsp;&emsp;以下面这个例子,比如有一个天蓝色父盒子,里面包裹了一个绿色子盒子,里面再包裹了一个橙色孙子盒子,分别绑定点击事件将输出不同内容:

    <div class="father" @click="father">        <div class="child" @click="child">          <div class="grandSon" @click="grandSon"></div>        </div>
     .father {        width: 200px;        height: 200px;        background-color: skyblue;      }      .child {        width: 100px;        height: 100px;        background-color: green;      }      .grandSon {        width: 50px;        height: 50px;        background-color: orange;      }
     father() {            console.log("trigger father");          },          child() {            console.log("trigger child");          },          grandSon() {            console.log("trigger granSon");          },

    正常情况下,当点击不同盒子时,会产生冒泡,由内而外,依次顺序执行事件:

    vue事件修饰符怎么应用

    &emsp;&emsp;我们给处于中间的子盒子添加.self修饰符,这样当点击孙子盒子时,按照正常冒泡逻辑,会依次触发孙子、儿子、父亲的点击事件,但是因为子盒子添加了.self修饰符,那么孙子的冒泡就不能影响到子盒子了,冒泡无效,只有子盒子自己被点击才会触发它的点击事件。

    <div class="child" @click.self="child">

    vue事件修饰符怎么应用

    五.once修饰符:

    &emsp;&emsp;顾名思义,就是事件只能触发一次,比如给一个盒子绑定点击事件,点击后输出内容:

    <div class="father" @click="father"></div>
    .father {        width: 200px;        height: 200px;        background-color: skyblue;      }
    father() {            console.log("trigger father");          },

    正常效果:

    vue事件修饰符怎么应用

    添加.once修饰符,点击事件只能触发一次,多点没有了:

    <div class="father" @click.once="father"></div>

    vue事件修饰符怎么应用

    六.passive修饰符:

    这个不方便举例,我就直接结合vue官方文档的介绍了:

    Vue 还对应 addEventListener 中的 passive 选项提供了 .passive 修饰符。

    <!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 --><!-- 而不会等待 `onScroll` 完成  --><!-- 这其中包含 `event.preventDefault()` 的情况 --><div v-on:scroll.passive="onScroll">...</div>

    &emsp;&emsp;这个 .passive 修饰符会执行默认方法,尤其能够提升移动端的性能。
    &emsp;&emsp;问题来了,passive 修饰符会执行默认方法?提高性能?默认方法本来就会执行,要它干嘛?
    &emsp;&emsp;简单来说,其实每次事件产生,浏览器都会去查询一下是否有preventDefault阻止该次事件的默认动作。我们加上passive就是为了告诉浏览器,不用查询了,我们没用preventDefault阻止默认动作。所以说,浏览器就不用去检查了,既然不用检查了,那效率就上来了,性能那肯定就加强了。特别是在移动端,用户手势操作那么快,执行效率就很重要了。

    不要把 .passive 和 .prevent 一起使用,因为 .prevent 将会被忽略,同时浏览器可能会向你展示一个警告。请记住,.passive 会告诉浏览器你不想阻止事件的默认行为。

    七. 按键修饰符、系统修饰符:

    1.按键修饰符:

    &emsp;&emsp;在监听键盘事件时,我们经常需要检查详细的按键。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符。简单来说,我们在绑定按键事件时,可以通过修饰符快速指定只有点击某个键才会触发。

    vue提供的常用按键码别名的修饰符如下:

    .enter.tab.delete (捕获“删除”和“退格”键).esc.space.up.down.left.right

    比如,有一个input输入框,绑定一个keyup按键松开事件,触发时输出内容:

    <input type="text" @keyup="outPut" />
     outPut() {            console.log("outPut!");          },

    只要有按键松开都会触发:

    vue事件修饰符怎么应用

    按键修饰符,后面当我按回车键时才会触发事件:

    <input type="text" @keyup.enter="outPut" />

    vue事件修饰符怎么应用

    2.系统修饰符:

    这个跟按键修饰符一样的,就不多介绍了,我直接引用vue官方文档的介绍了:

    可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器。

    .ctrl.alt.shift.meta

    如:

    <!-- Alt + C --><input v-on:keyup.alt.67="clear"><!-- Ctrl + Click --><div v-on:click.ctrl="doSomething">Do something</div>

    请注意修饰键与常规按键不同,在和 keyup 事件一起用时,事件触发时修饰键必须处于按下状态。换句话说,只有在按住 ctrl 的情况下释放其它按键,才能触发 keyup.ctrl。而单单释放 ctrl 也不会触发事件。如果你想要这样的行为,请为 ctrl 换用 keyCode:keyup.17。

    关于“vue事件修饰符怎么应用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“vue事件修饰符怎么应用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    vue事件修饰符怎么应用

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    vue事件修饰符怎么应用

    这篇文章主要介绍了vue事件修饰符怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue事件修饰符怎么应用文章都会有所收获,下面我们一起来看看吧。一.速识概念:先引用vue官网的话说----在事件处理程序
    2023-07-05

    vue事件修饰符和按键修饰符怎么使用

    本篇内容主要讲解“vue事件修饰符和按键修饰符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue事件修饰符和按键修饰符怎么使用”吧!在事件处理程序中调用 event.preventDe
    2023-07-04

    vue事件修饰符源码分析

    本篇内容主要讲解“vue事件修饰符源码分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue事件修饰符源码分析”吧!在项目开发中遇到了vue的键盘事件,以下是项目的代码片段:
    2023-07-05

    Vue事件修饰符使用详细介绍

    在Vue中,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理
    2022-11-13

    如何在Vue中使用事件修饰符

    如何在Vue中使用事件修饰符?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序员常规操作:打开浏览器–百度/谷歌搜一搜,发现搜出来的东西不少,没一个是能解决我的
    2023-06-15

    web前端:vue中的事件修饰符

    编程学习网:修饰符是用于限定类型以及类型成员的声明的一种符号。
    web前端:vue中的事件修饰符
    2024-04-23

    一文浅析部分vue事件修饰符

    本篇文章给大家带来了关于前端的相关知识,其中主要跟大家聊聊一些vue中的事件修饰符,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。
    2023-05-14

    vue中的事件修饰符介绍和示例

    在Vue中,修饰符处理了许多DOM事件的细节,让我们不再需要花大量的时间去处理这些烦恼的事情,而能有更多的精力专注于程序的逻辑处理,需要的朋友可以参考下
    2023-05-17

    如何理解Vue中的事件处理和事件修饰符

    这篇文章将为大家详细讲解有关如何理解Vue中的事件处理和事件修饰符,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    {{name}},加油

    2023-06-25

    Vue3的事件处理和修饰符怎么定义使用

    本篇内容介绍了“Vue3的事件处理和修饰符怎么定义使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vue事件处理是每个Vue项目的必要方面
    2023-07-04

    vue指令中的修饰符怎么使用

    这篇文章主要介绍“vue指令中的修饰符怎么使用”,在日常操作中,相信很多人在vue指令中的修饰符怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue指令中的修饰符怎么使用”的疑惑有所帮助!接下来,请跟
    2023-06-30

    Vue常用的修饰符及应用场景解读

    这篇文章主要介绍了Vue常用的修饰符及应用场景解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-13

    Vue的v-model指令修饰符怎么使用

    今天小编给大家分享一下Vue的v-model指令修饰符怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 .lazyv
    2023-07-04

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录