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>
相关推荐
无羡仙1 天前
从零构建 Vue 弹窗组件
前端·vue.js
源心锁1 天前
👋 手搓 gzip 实现的文件分块压缩上传
前端·javascript
源心锁1 天前
丧心病狂!在浏览器全天候记录用户行为排障
前端·架构
GIS之路1 天前
GDAL 实现投影转换
前端
phltxy1 天前
从零入门JavaScript:基础语法全解析
开发语言·javascript
烛阴1 天前
从“无”到“有”:手动实现一个 3D 渲染循环全过程
前端·webgl·three.js
BD_Marathon1 天前
SpringBoot——辅助功能之切换web服务器
服务器·前端·spring boot
Kagol1 天前
JavaScript 中的 sort 排序问题
前端·javascript
eason_fan1 天前
Service Worker 缓存请求:前端性能优化的进阶利器
前端·性能优化
光影少年1 天前
rn如何和原生进行通信,是单线程还是多线程,通信方式都有哪些
前端·react native·react.js·taro