广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue事件修饰符使用详细介绍
  • 723
分享到

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

Vue事件修饰符Vue事件修饰符的作用 2022-11-13 18:11:02 723人浏览 薄情痞子
摘要

目录1 .prevent阻止默认事件2 .stop阻止事件冒泡3 .once事件只触发一次4 .capture使用事件捕获模式5 .self当e.target是当前操作的元素才触发事

1 .prevent阻止默认事件

.prevent可以阻止默认事件的发生。

例如,阻止a标签的跳转

<div id="app">
    <a href="https://www.baidu.com" rel="external nofollow"  rel="external nofollow"  @click.prevent>百度</a>
</div>
<script>
    var vm = new Vue({
        el: "#app"
    })
</script>

除此之外,还有一种方式是使用之前的e.preventDefault()来阻止默认行为,代码如下:

    <div id="app">
        <a href="Https://www.baidu.com" rel="external nofollow"  rel="external nofollow"  @click="handleClick">百度</a>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick(e) {
                    e.preventDefault();
                }
            }
        })
    </script>

这时点击页面上的标签则不会进行页面的跳转。

2 .stop阻止事件冒泡

DOM有事件冒泡的特点,使用.stop可以阻止事件冒泡,代码如下:

    <div id="app">
        <div @click="handleClick">
            <button @click.stop="handleClick">点击提示</button>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick(e) {
                    console.log("事件触发");
                }
            }
        })
    </script>

或者使用e.stopPropagation()也可以阻止事件冒泡,代码如下:

    <div id="app">
        <div @click="handleClick">
            <button @click="handleClick">点击提示</button>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick(e) {
                    e.stopPropagation(); // 阻止事件冒泡
                    console.log("事件触发");
                }
            }
        })
    </script>

3 .once事件只触发一次

.once可以让事件只触发一次,当再次触发事件事,该事件会失效。

例如,页面上有一个按钮,每次点击按钮都会弹窗提示

    <div id="app">
        <button @click="handleClick">点击</button>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick() {
                    alert("点击事件");
                }
            }
        })
    </script>

如果为click事件加上事件修饰符.once,那么该弹窗只会出现一次,再次点击按钮则不会弹窗,示例代码如下:

    <div id="app">
        <button @click.once="handleClick">点击</button>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick() {
                    alert("点击事件");
                }
            }
        })
    </script>

4 .capture使用事件捕获模式

在DOM事件流中,我们都知道DOM事件会先捕获然后冒泡,在冒泡阶段才会处理事件,因此在下面的示例中,点击按钮,会先触发handleClick2()输出2,然后触发handleClick1()输出1,代码如下:

    <div id="app">
        <div @click="handleClick1">
            <button @click="handleClick2">点击</button>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick1() {
                    console.log(1);
                },
                handleClick2() {
                    console.log(2);
                }
            }
        })
    </script>

但是如果我们想在事件捕获时就处理事件,可以使用.capture来处理,这样点击按钮时,会先触发handleClick1()输出1,然后触发handleClick2()输出2,示例代码如下:

    <div id="app">
        <div @click.capture="handleClick1">
            <button @click="handleClick2">点击</button>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick1() {
                    console.log(1);
                },
                handleClick2() {
                    console.log(2);
                }
            }
        })
    </script>

5 .self当e.target是当前操作的元素才触发事件

在冒泡或者捕获时,e.target会指向触发事件的对象。例如,在下面代码中,点击按钮,虽然由于事件冒泡会将上面div的事件也进行触发,但是它们的e.target都是触发事件的按钮。

    <div id="app">
        <div @click="handleClick">
            <button @click="handleClick">点击</button>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick(e) {
                    console.log(e.target);
                }
            }
        })
    </script>

当使用.self来修饰时,那么只有当触发事件的对象和当前操作的元素一致时,才会触发事件,代码如下:

    <div id="app">
        <div @click.self="handleClick">
            <button @click="handleClick">点击</button>
        </div>
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                handleClick(e) {
                    console.log(e.target);
                }
            }
        })
    </script>

在上面的代码中,点击按钮后只触发了一次handleClick()事件,这是因为外面的div并不是当前的e.target,因此不会触发handleClick()事件。

6 .passive事件的默认行为立即执行

.passive可以让事件的默认行为立即执行,无需等待事件回调执行完毕,一般在移动端会使用多一些。

7 .键盘事件

Vue为我们提供了常用的键盘事件,具体如下:

修饰符键盘事件
.enter按下回车键后触发
.delete按下backspace或者delete键触发
.esc按下esc键后触发
.space按下空格键后触发
.up按下上键后触发
.down按下下键后触发
.left按下左键后触发
.right按下右键后触发
.tab按下tab键触发,该按键配合keydown事件使用,否则会切走焦点

示例:按下backspace或者delete键时输出输入框中的内容

    <div id="app">
        <input type="text" @keyup.delete="demo">
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                demo(e) {
                    console.log(e.target.value);
                }
            }
        })
    </script>

但是如果我们想为除了上面的键之外的键绑定事件,这时就可以使用按键原始的key值(注意不是keyCode)去绑定事件。键的key值可以通过e.key来获取到,比如说获取q键的key值,代码如下:

    <div id="app">
        <input type="text" @keyup="getQ">
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                getQ(e) {
                    console.log(e.key); // 输出key值
                    console.log(e.keyCode); // 输出keyCode
                }
            }
        })
    </script>

可以看到q的key值是q,keyCode是81,我们使用q可以为该键绑定事件,代码如下:

    <div id="app">
        <input type="text" @keyup.q="qClick">
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                qClick() {
                    console.log("按下了q键");
                }
            }
        })
    </script>

除了以上两种方式外,还有两种方式可以为键盘绑定事件:

(1)使用keyCode绑定事件,例如回车键的keyCode为13,按下回车键输出输入框中数字,不过该方式并不推荐,因为不同的键盘keyCode可能不同,示例代码如下:

    <div id="app">
        <input type="text" @keydown.13="demo">
    </div>
    <script>
        var vm = new Vue({
            el: "#app",
            methods: {
                demo(e) {
                    console.log(e.target.value);
                }
            }
        })
    </script>

(2)使用定制按键别名的方式绑定事件,语法如下:

Vue.config.keyCodes.自定义键名 = 键码;

为回车键绑定事件,示例代码如下:

    <div id="app">
        <input type="text" @keyup.huiche="demo">
    </div>
    <script>
        Vue.config.keyCodes.huiche = 13; // 绑定回车事件
        var vm = new Vue({
            el: "#app",
            methods: {
                demo(e) {
                    console.log(e.target.value);
                }
            }
        })
    </script>

注意:

  • 对于大写定键来说,它的key值是CapsLock,因此在为它绑定事件时,必须将组成它的两个单词小写,并且使用“-”将他们连接,也就是说,它使用caps-lock来绑定事件
  • ctrlaltshiftmeta键是系统修饰键,如果为它们绑定keyup事件不会立即起作用,它们起作用的方式为:按下系统修饰键——>按下其他键——>释放其他键,这样事件才会被触发

到此这篇关于Vue事件修饰符使用详细介绍的文章就介绍到这了,更多相关Vue事件修饰符内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue事件修饰符使用详细介绍

本文链接: https://www.lsjlt.com/news/169728.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Vue事件修饰符使用详细介绍
    目录1 .prevent阻止默认事件2 .stop阻止事件冒泡3 .once事件只触发一次4 .capture使用事件捕获模式5 .self当e.target是当前操作的元素才触发事...
    99+
    2022-11-13
    Vue事件修饰符 Vue事件修饰符的作用
  • VB.NET修饰符详细概念介绍
    本篇内容介绍了“VB.NET修饰符详细概念介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VB.NET修饰符1.Shadows Shado...
    99+
    2023-06-17
  • vue中的事件修饰符介绍和示例
    目录1. 官方文档2. 说明+实例2.1 .stop2.2 .prevent2.3 .capture2.4 {keyCode | keyAlias}2.5 .native2.6 .o...
    99+
    2023-05-17
    vue修饰符 vue事件修饰符
  • C++中常用修饰符inline的详细介绍
    本篇内容介绍了“C++中常用修饰符inline的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在前面谈了const后,现在再来谈一下...
    99+
    2023-06-17
  • vue事件修饰符和按键修饰符怎么使用
    本篇内容主要讲解“vue事件修饰符和按键修饰符怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue事件修饰符和按键修饰符怎么使用”吧!在事件处理程序中调用 event.preventDe...
    99+
    2023-07-04
  • Java详细讲解包的作用以及修饰符的介绍
    目录1.包1.包的三大作用2.包的基本语法3.包的本质4.包的命名规则5.包的命名规范6.常用的包7.注意事项和使用细节2.访问修饰符1.4种访问修饰符的访问范围2.使用注意事项3....
    99+
    2022-11-13
  • Vue之事件处理和事件修饰符详解
    <div id="root"> <h2>{{name}},加油!</h2> <!-- 阻止默认事...
    99+
    2022-11-12
  • vue中如何使用事件修饰符和按键修饰符
    今天就跟大家聊聊有关vue中如何使用事件修饰符和按键修饰符,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在事件处理程序中调用 event.preve...
    99+
    2022-10-19
  • vue事件修饰符怎么应用
    这篇文章主要介绍了vue事件修饰符怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue事件修饰符怎么应用文章都会有所收获,下面我们一起来看看吧。一.速识概念:先引用vue官网的话说----在事件处理程序...
    99+
    2023-07-05
  • 如何在Vue中使用事件修饰符
    如何在Vue中使用事件修饰符?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。程序员常规操作:打开浏览器–百度/谷歌搜一搜,发现搜出来的东西不少,没一个是能解决我的...
    99+
    2023-06-15
  • Vue修饰符的使用详解
    目录事件修饰符的使用按键修饰符系统键修饰符鼠标按键修饰符表单修饰符总结事件修饰符的使用 <button @click.stop='func'>按钮</button&...
    99+
    2022-11-13
    Vue修饰符 Vue修饰符有哪些
  • C++中static修饰符的详解及其作用介绍
    目录概述静态数据成员引用静态数据成员用类名访问数据成员静态成员函数综合案例概述 static (静态) 修饰符是用来控制变量的存储方式和可见性的. 静态局部变量存储在静态区域: s...
    99+
    2022-11-12
  • C++中const修饰符的详解及其作用介绍
    目录概述常对象常对象成员常成员函数常数据成员数据成员访问限制常对象修改的限制常指针指向常变量的指针指向对象的指针小结对象的常引用总结概述 const 是 constant 的缩写, ...
    99+
    2022-11-12
  • React高阶组件使用详细介绍
    首先 我们要了解什么是高阶组件 第一 高阶组件必须是一个函数 第二 高阶组件接收一个参数,这个参数也必须是一个组件 第三 他的返回值 也是一个组件 至于高阶组件的作用 我们后续会讲解...
    99+
    2023-01-29
    React高阶组件 React高阶组件的使用 React高阶组件的作用
  • Vue自定义组件使用事件修饰符的踩坑记录
    前言 今天在使用自写组件时,突然遇到久违的冒泡事件,就想着使用Vue自带的事件修饰符(.stop),本以为可以就此解决冒泡,却遇到这个问题。 脑中一片问号????这是什么鬼,我是...
    99+
    2022-11-12
  • vue中keepAlive组件的作用和使用方法详细介绍
    这篇文章主要讲解了“vue中keepAlive组件的作用和使用方法详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中keepAlive组件的作用和使用方法详细介绍”吧!前言在面试...
    99+
    2023-06-20
  • Vue自定义指令的使用详细介绍
    目录1. 概述2. 钩子函数3. 自定义全局指令4. 自定义局部指令5. 使用自定义指令实现权限管理6. 使用自定义指令实现表单验证1. 概述 除了核心功能默认内置的指令,Vue也允...
    99+
    2022-11-13
  • vue使用once修饰符,使事件只能触发一次问题
    目录once修饰符,使事件只能触发一次vue事件修饰符(once:prev:stop)注释说的很详细once修饰符,使事件只能触发一次 多个修饰符可以同步使用 <!--定义vu...
    99+
    2022-11-13
  • TypeScript类class与修饰符的详细使用教程
    目录一、简介二、成员修饰符访问修饰符只读修饰符静态修饰符总结一、简介 通过 class 关键字定义一个类,然后通过 new 关键字可以方便的生产一个类的实例对象,这个生产对象的过程叫...
    99+
    2022-11-13
  • vue中使用svg画路径图的详细介绍
    什么是svg: SVG 是使用 XML 来描述二维图形和绘图程序的语言。 svg的优点与特点 SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失SVG 是万维网联盟的标准SV...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作