Vue.js 事件修饰符 .stop 用于阻止事件继续传播,即阻止事件冒泡。这在处理父子组件之间的事件通信时特别有用,可以防止事件从子组件冒泡到父组件,或者在一个元素上绑定多个事件处理函数时,阻止后续事件处理函数的执行。
下面是一个使用 .stop 事件修饰符的简单案例:
运行效果:
当点击页面的Click Button文案时,浏览器的Console位置只会输出一句Child button clicked
如果将代码中 Child Button的.stop去掉的话 ,点击Click Button文案时就会先输出Child button clicked,然后再输出Parent button clicked:
.stop 事件修饰符在 Vue.js 中非常有用,特别是在处理复杂的事件传播和处理场景时。以下是一些常见的使用场景:
总的来说,.stop 事件修饰符在需要控制事件传播行为,避免事件冒泡或者防止触发父级元素事件处理函数时非常有用。
最后,附上源码,感兴趣的小伙伴可以自己去试一试:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue 事件修饰符.stop Example</title>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
<div id="app">
<button @click="parentClick">
Click Me
<span @click.stop="childClick"> Child Button</span>
</button>
</div>
<script>
new Vue({
el: '#app',
methods: {
parentClick() {
console.log('Parent button clicked');
},
childClick() {
console.log('Child button clicked');
}
}
});
</script>
</body>
</html>