vue中实现button按钮的重复点击指令

csharp 复制代码
// 注册一个全局自定义指令 `v-debounce`
Vue.directive('debounce', {
  // 当被绑定的元素插入到 DOM 中时...
  inserted: function (el, binding) {
    let timer;
    el.addEventListener('click', () => {
      clearTimeout(timer);
      timer = setTimeout(() => {
        binding.value(); // 调用传给指令的方法
      }, 500);
    });
  },
  // 当绑定元素的父组件更新时...
  update: function (el, binding) {
    let timer;
    el.addEventListener('click', () => {
      clearTimeout(timer);
      timer = setTimeout(() => {
        binding.value(); // 调用传给指令的方法
      }, 500);
    });
  }
});

// 使用指令
// 在组件中
<template>
  <button v-debounce="myClickHandler">Click me</button>
</template>

<script>
export default {
  methods: {
    myClickHandler() {
      // 处理点击事件
    }
  }
}
</script>
相关推荐
BrianGriffin5 分钟前
JS異步:setTimeout包裝為sleep
开发语言·javascript·ecmascript
涔溪13 分钟前
有哪些常见的Vite插件及其作用?
前端·vue.js·vite
糖墨夕14 分钟前
从一行代码看TypeScript的精准与陷阱:空值合并vs逻辑或
前端·typescript
Junsen20 分钟前
使用 Supabase 实现轻量埋点监控
前端·javascript
Java&Develop22 分钟前
html写一个象棋游戏
javascript·游戏·html
CnLiang30 分钟前
React Compiler Plugin
前端·react.js
willxiao30 分钟前
js 单例模式 6 种实现方式
javascript·设计模式
一只爱吃糖的小羊38 分钟前
React 19 生命周期:从入门到实战的完整指南
前端·react.js
乔伊酱40 分钟前
Bean Searcher 遇“鬼”记:为何我的查询条件偷偷跑进了 HAVING?
java·前端·orm
uu_code00743 分钟前
字节磨皮算法详解
前端