面试题答案
一键面试在Vue的模板语法中:
- 阻止事件冒泡:使用
.stop
修饰符。例如:
<button @click.stop="handleClick">点击我</button>
这里@click.stop
表示当按钮被点击时,触发handleClick
方法,同时阻止事件冒泡。
- 阻止事件捕获:Vue中并没有直接阻止事件捕获的修饰符。事件捕获是从外向内传递事件,而Vue的事件绑定默认是在事件冒泡阶段触发。如果想要模拟阻止事件捕获的效果,需要在JavaScript中手动处理,例如:
<div @click="outerClick">
<button @click="innerClick">点击我</button>
</div>
export default {
methods: {
outerClick(e) {
if (e.target.tagName === 'BUTTON') {
return;
}
// 处理外层div点击逻辑
},
innerClick() {
// 处理按钮点击逻辑
}
}
}
这种方式通过判断事件源来模拟阻止类似事件捕获行为。