vue的事件修饰符
👉 vue的事件修饰符(官网) 👈
在处理事件时调用 event.preventDefault() 或 event.stopPropagation() 是很常见的。尽管我们可以直接在方法内调用,但如果方法能更专注于数据逻辑而不用去处理 DOM 事件的细节会更好。
为解决这一问题,Vue 为 v-on 提供了事件修饰符。修饰符是用 . 表示的指令后缀,包含以下这些:
.stop —— 阻止事件冒泡, 也就是当前元素发生事件,但当前元素的父元素不发生该事件.prevent - 阻止默认事件发生.capture - 使用事件捕获模式, 主动获取子元素发生事件, 把获取到的事件当自己的事件执行.self —— 只有元素自身触发事件才执行。(冒泡或捕获的都不执行).once —— 只执行一次.passive - 修饰符一般用于触摸事件的监听器,可以用来改善移动端设备的滚屏性能。
1 | <!-- 单击事件将停止传递 --> |
使用修饰符时需要注意调用顺序,因为相关代码是以相同的顺序生成的。因此使用@click.prevent.self 会阻止元素及其子元素的所有点击事件的默认行为,而@click.self.prevent 则只会阻止对元素本身的点击事件的默认行为。
.capture 、.once 和 .passive 修饰符与原生 addEventListener 事件相对应:
1 | <!-- 添加事件监听器时,使用 `capture` 捕获模式 --> |
请勿同时使用 .passive 和 .prevent,因为 .passive 已经向浏览器表明了你不想阻止事件的默认行为。如果你这么做了,则 .prevent 会被忽略,并且浏览器会抛出警告。
👉 vue的按键修饰符(官网) 👈
你可以直接使用
KeyboardEvent.key暴露的按键名称作为修饰符,但需要转为 kebab-case 形式。
1 | <input @keyup.page-down="onPageDown" /> |
其他修饰符可以查看 vue的按键修饰符 了解更多。
评论




