事件处理1
一般使用 v-on
(简写为@
)指令来监听 DOM 事件。
-
内联事件处理器:事件被触发时执行的内联 JavaScript 语句
-
方法事件处理器:指向组件上方法的属性名或路径
- 方法事件处理器可以接收原生 DOM 事件并触发执行
事件修饰符
意义
在处理事件时,有时候我们想要阻止事件继续传播或者阻止默认行为,在方法中调用可以,但是不够优雅。事件修饰符可以让我们的方法专注于数据逻辑,而不用处理 DOM 事件细节
Vue 中的事件修饰符是用 .
表示的指令后缀,主要包含:
.stop
:事件停止传递(=event.preventDefault()
).prevent
:阻止默认行为(=event.stopPropagation()
).self
:仅当事件在该元素本身(而不是子元素)触发时触发事件处理器.capture
:捕获模式处理(=addEventListener(type, listener, {capture: true})
).once
:事件最多触发一次(=addEventListener(type, listener, {once: true})
).passive
:告知浏览器所调用方法不会阻止事件的默认行为(=addEventListener(type, listener, {passive: true})
),一般用于触摸事件的监听器
修饰符使用的时候要注意顺序,且注意语义不要矛盾(如 .passive
和 .prevent
是不可混用的,.prevent
会被忽略且抛出警告)
按键修饰符
按键修饰符是使用 KeyboardEvent.key
暴露的名称作为修饰符,其命名为短横线分隔的大小写字母。常用的按键有:
.enter
:Enter.tab
:Tab.delete
:Delete 和 Backspace.esc
:Esc.space
:Space.up
:↑.down
:↓.left
:←.right
:→.ctrl
:Ctrl.alt
:Alt.shift
:Shift.meta
:Meta(Windows 键或者 Command 键)
多个按键可以同时指定(如 @keyup.alt.enter
),也可以与点击事件结合使用(如 @click.ctrl
)
exact 修饰符
exact
修饰符允许你控制由精确的系统修饰符组合触发的事件。如果不使用 exact
修饰符,那么当按下 ctrl
或 alt
时,@keyup.ctrl
或 @keyup.alt
事件也会被触发。如果使用了 exact
修饰符,那么只有在按下 ctrl
或 alt
时才会触发 @keyup.ctrl
或 @keyup.alt
事件
鼠标按键修饰符
鼠标按键修饰符会限制处理函数仅相应特定鼠标按钮的点击事件,修饰符有这些:
.left
.right
.middle