📜  Vue.js 事件修饰符(1)

📅  最后修改于: 2023-12-03 15:35:38.775000             🧑  作者: Mango

Vue.js 事件修饰符

Vue.js 事件修饰符是Vue.js框架提供的一种机制,用于更方便地处理DOM事件。通过使用事件修饰符,我们可以很方便的控制如何处理DOM事件,从而达到更好的用户交互体验。

常用的事件修饰符

Vue.js提供了多个事件修饰符,下面是一些常用的事件修饰符:

  • .stop
  • .prevent
  • .capture
  • .self
  • .once
  • .passive
  • .native

.stop

该事件修饰符可以阻止事件继续传播。比如:

<!-- 阻止单击事件冒泡 -->
<a v-on:click.stop="doThis"></a>

.prevent

该事件修饰符可以阻止事件的默认行为。比如:

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

.capture

该事件修饰符可以使事件在捕获阶段发生。比如:

<!-- 只有在指定元素当前元素是 event.target 时触发 -->
<div v-on:click.capture="doThis">...</div>

.self

该事件修饰符只当事件在该元素本身(比如不是子元素)触发时触发回调。比如:

<!-- 只有在 event.target 是当前元素自身时触发回调 -->
<div v-on:click.self="doThis">...</div>

.once

该事件修饰符在事件触发后只执行一次回调。比如:

<!-- 点击时只执行一次 -->
<a v-on:click.once="doThis"></a>

.passive

该事件修饰符会告诉浏览器事件监听器不会调用事件的 preventDefault() 方法,从而达到提升性能的目的。比如:

<!-- 滚动时不再调用 preventDefault() -->
<div v-on:scroll.passive="onScroll">...</div>

.native

该事件修饰符可以监听组件根元素的原生事件。比如:

<!-- 监听到的事件 event 是根组件的原生事件 -->
<my-component v-on:native-click="onClick"></my-component>
自定义事件修饰符

除了Vue.js提供的事件修饰符,我们还可以自定义事件修饰符。比如:

Vue.config.keyCodes.f1 = 112  // 注册事件修饰符

然后:

<input v-on:keyup.f1="onF1">

就等价于:

<input v-on:keyup.112="onF1">
注意点

在使用事件修饰符时,需要谨慎使用,不当的使用会导致意想不到的问题。比如:

  • 如果使用了.prevent修饰符,那么必须确保不会影响到该元素上的其他事件绑定;
  • 如果使用了.capture修饰符,那么该元素上的子元素也会被捕获;
  • 如果使用了.self修饰符,那么该元素上的子元素也会被忽略。
结语

Vue.js的事件修饰符机制使得处理DOM事件变得更加方便灵活。合理的使用事件修饰符,可以极大地提升用户交互体验。