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>
相关推荐
集成显卡6 小时前
Bun v1.3.6 发布:内置 Tarball 归档支持、JSONC 解析、Bundle 分析增强等重磅更新!
javascript·新版本·bun.js
奔跑的web.6 小时前
TypeScript Enum 类型入门:从基础到实战
前端·javascript·typescript
盐真卿7 小时前
python2
java·前端·javascript
梦梦代码精7 小时前
BuildingAI vs Dify vs 扣子:三大开源智能体平台架构风格对比
开发语言·前端·数据库·后端·架构·开源·推荐算法
刘一说7 小时前
Vue3 组合式 API(Composition API):逻辑复用的革命性实践
vue.js·vue
seabirdssss8 小时前
《bootstrap is not defined 导致“获取配置详情失败”?一次前端踩坑实录》
前端·bootstrap·html
kgduu8 小时前
js之表单
开发语言·前端·javascript
摘星编程9 小时前
React Native for OpenHarmony 实战:Picker 选择器组件详解
javascript·react native·react.js
摘星编程9 小时前
React Native for OpenHarmony 实战:VirtualizedList 虚拟化列表
javascript·react native·react.js
谢尔登10 小时前
Vue3 响应式系统——computed 和 watch
前端·架构