vue使用once修饰符,使事件只能触发一次问题

282 阅读1分钟

当我们在 Vue 组件中使用事件时,有时我们希望事件只能触发一次或者只在第一次触发时执行。这种情况下,我们可以使用 Vue 提供的 once 修饰符来实现这个功能。

使用 once 修饰符

在 Vue 的事件绑定语法中,我们可以使用 v-on 或者简写的 @ 来绑定事件,例如:

<template>
  <button @click="handleClick">Click Me</button>
</template>

上面的代码片段中,我们使用 @click 给按钮绑定了一个点击事件,当用户点击按钮时,会触发 handleClick 方法。咱们实际中的请求可能会有点延迟的时间,这时候可能用户重复点击,就会重复发起请求,生成重复的订单的情况,如果我们希望这个方法只能执行一次,可以在事件名后面添加 .once

<template>
  <button @click.once="handleClick">Click Me</button>
</template>

总结


使用 Vue 的 once 修饰符可以让事件只能触发一次或者只在第一次触发时执行,该修饰符不仅适用于 Vue 内置的事件,也适用于自定义事件。我们可以在事件名后面添加 .once 来使用该修饰符,实现我们的业务需求。