Vue3$SideEffect-Event

102 阅读1分钟

Vue3$SideEffect-Event

1. 基本使用

使用 v-on 指令(或者简写形式@),绑定事件处理器(handler)从而监听 DOM 事件。 事件处理器分为:

  • 内联事件处理器 Inline handlers:用法类似于原生的onclick
  • 方法事件处理器 Method handlers:函数

2. 参数 $event

在事件处理器中,默认的第一个参数是 DOM 原生事件,如果想要显式地获取(比如作为第二个参数),则需要使用 $event

<!-- using $event special variable -->
<button @click="warn('Form cannot be submitted yet.', $event)">
  Submit
</button>

<!-- using inline arrow function -->
<button @click="(event) => warn('Form cannot be submitted yet.', event)">
  Submit
</button>

3. 事件修饰符 Event Modifiers

事件修饰符是用来修饰事件处理器的,这样就不用在函数逻辑里写 event.preventDefault() 了。

需要注意:

  • 顺序不同效果可能不同
  • .passive.prevent 不应该同时使用,同时使用会以 passive 为准,且控制台有提示。

Vue 提供的事件修饰符有:

  • .stop
  • .prevent
  • .self
  • .capture
  • .once
  • .passive
<form @submit.prevent="onSubmit"></form>

4. 按键和鼠标事件修饰符 Key Modifiers and Mouse Button Modifiers

按键修饰符表示按的是什么键,Vue 内置了一些简写方式,其他按键使用 kebab-case 来表示。对于系统按键,需要配合 keydown 来使用。如果想明确表示按什么键,可以加上 exact 修饰符。

鼠标修饰符表示按的是什么键。

- Key Modifiers: @keyup.enter, @keyup.page-down
	1. Key Aliases: .enter, .tab, .delete, .esc, .space, .up, .down, .left, .right
	2. System Modifier Keys (keydown): .ctrl, .alt, .shift, .meta
	3. .exact
- Mouse Button Modifiers: .left, .right, .middle

Links

VueEventHandling