.prevent 用于自动调用 event.preventdefault() 阻止浏览器默认行为,适用于表单提交、链接跳转等原生事件,可与其他修饰符组合使用,但不适用于自定义事件或需条件拦截的场景。

.prevent 是 Vue 3 中最常用的事件修饰符之一,它的作用是自动调用 event.preventDefault(),阻止浏览器的默认行为。不需要在方法里手动写 e.preventDefault(),写法简洁、语义清晰。
阻止表单默认提交(不刷新页面)
表单提交时,浏览器默认会跳转或刷新页面。加上 .prevent 后,提交动作只触发绑定的方法,页面保持不动:
- 写法:
@submit.prevent="handleSubmit" - 等价于在
handleSubmit方法第一行写e.preventDefault() - 表单内仍可正常使用
v-model获取输入值,后续可发起 API 请求
示例:
阻止链接默认跳转(点击不跳页)
给 @#@#@#@#@#@#@#@#@#@0
<h3>组合使用修饰符(如同时阻止冒泡和默认行为)</h3>
<p>多个修饰符可连写,执行顺序从左到右,常见组合有:</p>
<ul>
<li>
<code>@click.stop.prevent:先阻止冒泡,再阻止默认行为
@click.prevent.stop:先阻止默认行为,再阻止冒泡(效果相同,推荐按逻辑习惯写 stop 在前).passive 和 .prevent 不能共存,因为 .passive 声明“不阻止默认行为”,两者语义冲突不适用场景与注意事项
.prevent 只对**原生 DOM 事件**生效,对自定义事件无效;它也不能替代业务逻辑判断:
- 如果想“条件性阻止”,比如验证失败才阻止,默认仍应提交,那就得在方法里手动调用
e.preventDefault() - 在封装的组件上直接用
@click.prevent,仅作用于组件根元素的原生 click;若需作用于内部按钮,需用.sync或v-bind="$attrs"透传 - 键盘事件中也可用,例如
@keyup.enter.prevent阻止回车触发表单提交
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











