.stop阻止冒泡
<body>
<div id="app">
<div class="inner" @click="div1handler">
<input type="button" value="戳他" @click="btnHandler">
<!--阻止冒泡是@click.stop="btnHandler-->
</div>
</div>
<script>
//创建Vue实例,得到ViewModel
var vm = new Vue({
el: '#app',
data: {},
methods: {
div1Handler(){
console.log('这是触发了inner div的点击事件')
},
btnHandler(){
console.log('这是触发了btn按钮的点击事件')
}
}
});
</script>
</body>
.prevent阻止默认事件
<div id="app">
<a href="www.baidu.com" @click="linkClick">有病治病</a>
<!--阻止链接跳转是@click.prevent="linkClick"-->
</div>
<script>
//创建Vue实例,得到ViewModel
var vm = new Vue({
el: '#app',
data: {},
methods: {
linkClick(){
console.log('触发链接的点击事件')
}
}
});
</script>
.capture添加事件侦听器时使用事件捕获模式
<div class="inner" @click.capture="div1Handler">
<input type="button" value="戳他" @click="btnHandler">
</div>
<script>
//创建Vue实例,得到ViewModel
var vm = new Vue({
el: '#app',
data: {},
methods: {
div1Handler(){
console.log('这是触发了inner div的点击事件')
},
btnHandler(){
console.log('这是触发了btn按钮的点击事件')
}
}
});
</script>
.self只当事件在该元素本身(比如不是子元素)触发时触发回调
<!--使用.self实现只有点击当前元素,才会触发事件处理函数-->
<!--.self只会阻止自己身上冒泡行为的触发,并不会真正阻止冒泡行为-->
<div class="inner" @click.self="div1Handler">
<input type="button" value="戳他" @click="btnHandler">
</div>
.once事件只触发一次
<!--使用.once只触发一次事件处理函数-->
<a href="www.baidu.com" @click.prevent.once="linkClick">有病治病</a>