Vue修饰符全解析
目录
一、事件修饰符
二、按键修饰符
三、系统修饰键
四、表单修饰符
五、鼠标修饰符
六、特殊修饰符
七、自定义修饰符
使用建议
一、事件修饰符
<!-- 阻止冒泡 -->
<button @click.stop="handleClick">点击测试</button><!-- 阻止默认行为 -->
<form @submit.prevent="handleSubmit"></form><!-- 事件捕获模式 -->
<div @click.capture="captureHandler"></div><!-- 仅当event.target是元素自身时触发 -->
<div @click.self="selfHandler"></div><!-- 单次触发 -->
<button @click.once="onceHandler"></button><!-- 滚动事件的默认行为立即触发 -->
<div @scroll.passive="onScroll"></div>
注意:修饰符顺序影响执行顺序,例如:
@click.prevent.self
先阻止默认再判断元素@click.self.prevent
先判断元素再阻止默认
二、按键修饰符
<!-- 回车键触发 -->
<input @keyup.enter="submit"><!-- 删除键触发 -->
<input @keyup.delete="clear"><!-- 方向键触发 -->
<input @keyup.left="moveLeft"><!-- 精确控制组合键 -->
<button @click.ctrl.exact="ctrlClick">仅按Ctrl时触发</button>
支持按键别名:
.enter
.tab
.delete
.esc
.space
.up
.down
.left
.right
三、系统修饰键
<!-- Ctrl + C 触发 -->
<input @keyup.ctrl.67="copy"><!-- Alt + Enter 触发 -->
<input @keyup.alt.enter="specialSubmit"><!-- Shift + 点击 -->
<div @click.shift="shiftClick"></div>
系统修饰键:
.ctrl
.alt
.shift
.meta
(Windows对应⊞键,Mac对应⌘键)
四、表单修饰符
<!-- 延迟同步 -->
<input v-model.lazy="msg"><!-- 自动转为数字 -->
<input v-model.number="age"><!-- 去除首尾空格 -->
<input v-model.trim="username">
五、鼠标修饰符
<!-- 左键点击 -->
<div @mousedown.left="leftClick"></div><!-- 中键点击 -->
<div @click.middle="middleClick"></div><!-- 右键点击 -->
<div @contextmenu.right="rightMenu"></div>
六、特殊修饰符
<!-- 原生事件监听 -->
<component @click.native="nativeClick"></component><!-- 属性双向绑定(Vue2语法) -->
<ChildComponent :title.sync="pageTitle" />
七、自定义修饰符
// 全局自定义修饰符
app.config.globalProperties.$customModifier = (el, binding) => {// 自定义处理逻辑
}
使用建议
- 组合修饰符时注意执行顺序:
<!-- 先阻止默认再停止冒泡 -->
<form @submit.prevent.stop></form>
- 性能优化建议:
- 滚动事件建议配合
.passive
- 频繁触发事件使用
.lazy
或.throttle
- 调试技巧:
<!-- 查看事件对象 -->
<button @click.shift.alt="(e) => console.log(e)">调试</button>
通过合理使用修饰符,可以显著提升代码简洁性和事件处理效率。建议根据实际场景选择最合适的修饰符组合。