Vue框架中的事件修饰符详解

4,512 阅读2分钟

Vue框架中的事件修饰符

修饰符 含义
.stop 阻止冒泡
.prevent 阻止默认事件
.capture 添加事件监听器时使用事件捕获模式
.self 只当事件在该元素本身触发事件
once 事件只触发一次

主要代码演示:

由于script代码和css代码一样,在此只写一份:

	<style>
	        .inner{
	            width: 500px;
	            height: 100px;
	            background-color: pink;
	        }
	    </style>
	<script>
	var vm = new Vue({
        el: '#app',
        data:{
        },
        methods:{
            divHandler(){
                console.log("触发了div的点击事件")
            },
            btnHnadler(){
                console.log("触发了按钮的点击事件")
            },
            linkClick(){
                console.log("prevent阻止了link的默认跳转事件")
            }

        }
    });
</script>

当没有任何修饰符修饰时

<div id="app">
   <div class="inner" @click = "divHandler">
    
        <input type="button" value="你猜点击会不会冒泡" @click = "btnHnadler">
    </div>
</div>

结果

在这里插入图片描述

.stop

<div id="app">
   <div class="inner" @click = "divHandler">
        <!-- 事件修饰符stop可以阻止事件冒泡-->
        <input type="button" value="你猜点击会不会冒泡" @click.stop = "btnHnadler">
    </div>
</div>

结果

在这里插入图片描述

.prevent

<div id="app">
<!--事件修饰符prevent可以阻止默认事件-->
   <a href="http://www.baidu.com" @click.prevent = "linkClick">有问题上百度</a>
</div>

结果

在这里插入图片描述

.capture

<div id="app">
    <!-- 事件修饰符capture可以捕获触发事件的机制-->
    <div class="inner" @click.capture = "divHandler">
        <input type="button" value="你猜点击会不会冒泡" @click = "btnHnadler">
    </div>
</div>

结果

在这里插入图片描述

.self

<div id="app">
   <!--事件修饰符self可以实现只有点击当前元素才会触发事件处理机制-->
    <div class="inner" @click.self = "divHandler">
        <input type="button" value="你猜点击会不会冒泡" @click = "btnHnadler">
    </div>
    </div>
</div>

结果

在这里插入图片描述

.once

<div id="app">
   <!--事件修饰符prevent可以阻止默认事件-->
    <!--事件修饰符once只会触发一次事件处理函数-->
    <a href="http://www.baidu.com" @click.prevent.once = "linkClick">有问题上百度</a>
</div>

结果

在这里插入图片描述

注: 本次结果需要自己去实验,截图并不能很好的理解含义,只有自己真正动手去做才能体会其中的含义。