Vue-Vue中的事件修饰符

本文介绍了Vue.js中常用的事件修饰符,包括`prevent`用于阻止默认行为,如阻止链接跳转;`stop`用于阻止事件冒泡,确保事件仅在当前元素上触发;以及`once`修饰符,使得事件处理函数只执行一次。通过示例代码,详细展示了这三个修饰符的使用场景和效果,帮助开发者更好地理解和应用Vue.js的事件处理机制。
摘要由CSDN通过智能技术生成

6.Vue中的事件修饰符

1.功能

1.prevent:阻止默认事件
 <div id="app">
        <a href="https:www.baidu.com" @click=showInfo()>点击我触发事件</a>
    </div>
    const vm = new Vue({
        el:'#app',
        data:{

        },
        methods:{
            showInfo(){
                console.log("触发了事件");
            } 
        }

    }) 

看上述示例,当我们点击链接时

在这里插入图片描述

我们可以看到,点击链接之后,浏览器跳转到了新的网址,然后我们再看看使用prevent事件符

<div id="app">
        <a href="https:www.baidu.com" @click=showInfo()>点击我触发事件</a>
    </div>

在这里插入图片描述

此时我们点击链接之后,只会触发click绑定的函数,而不会执行默认事件

2.stop:阻止事件冒泡
<div id="app">
        <!-- <a href="https:www.baidu.com" @click.prevent=showInfo()>点击我触发事件</a> -->
        <div @click="showInfo()">
            <button @click="showInfo()">点击我触发事件</button>
        </div>
    </div>
const vm = new Vue({
        el:'#app',
        data:{

        },
        methods:{
            showInfo(){
                console.log("触发了事件");
            } 
        }

    }) 

当我们点击按钮时

在这里插入图片描述

控制台输出了两次,也就是调用了两次函数,这是为什么呢?

因为我们的按钮时包裹在div里的,我们点击按钮时,div也会触发函数,这样就执行了两次函数

我们可以用stop来解决这个问题

<div @click="showInfo()">
            <button @click.stop="showInfo()">点击我触发事件</button>
 </div>

当我们再次点击按钮时

在这里插入图片描述

函数只触发了一次

stop可以阻止事件的冒泡

3.once:事件只触发一次
 <button @click.once="showInfo()">点击我触发事件1</button>
 showInfo(){
                console.log("触发了事件");
            } 

当我们第一次点击按钮时

在这里插入图片描述

但当我们继续点击按钮时,控制台将不会弹出信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值