vue自定义防抖指令

main.js中

复制代码
Vue.directive('throttle', {
  bind: (el, binding) => {
    let throttleTime = binding.value; // 防抖时间
    if (!throttleTime) { // 用户若不设置防抖时间,则默认2s
      throttleTime = 2000;
    }
    let cbFun;
    el.addEventListener('click', event => {
      if (!cbFun) { // 第一次执行
        cbFun = setTimeout(() => {
          cbFun = null;
        }, throttleTime);
      } else {
        event && event.stopImmediatePropagation();
      }
    }, true);
  },
});

使用

复制代码
	<div  @click="sayhello" v-throttle>提交</div>

实现效果,控制台2秒输出一次

相关推荐
Zyx20076 分钟前
React 中的 Props:组件通信与复用的核心机制
前端
海云前端111 分钟前
大模型Function Calling的函数如何调用的?
前端
ohyeah14 分钟前
防抖与节流:前端性能优化的两大利器
前端·javascript
Zyx200715 分钟前
React Hooks:函数组件的状态与副作用管理艺术
前端
让我上个超影吧32 分钟前
基于SpringBoot和Vue实现CAS单点登录
前端·vue.js·spring boot
军军君011 小时前
Three.js基础功能学习五:雾与渲染目标
开发语言·前端·javascript·学习·3d·前端框架·three
程序员爱钓鱼1 小时前
Node.js 编程实战:RESTful API 设计
前端·后端·node.js
程序员爱钓鱼1 小时前
Node.js 编程实战:GraphQL 简介与实战
前端·后端·node.js
chilavert3181 小时前
技术演进中的开发沉思-284 计算机原理:二进制核心原理
javascript·ajax·计算机原理
罗技1231 小时前
Easysearch 集群监控实战(下):线程池、索引、查询、段合并性能指标详解
前端·javascript·算法