Vue3项目自定义全局防抖节流

1. 先创建一个debounce.ts

typescript 复制代码
export default {
    //自定义防抖操作
    preventReClick: {
        mounted(el: { addEventListener: (arg0: string, arg1: () => void) => void; disabled: boolean }, binding: { value: any }) {
            el.addEventListener('click', () => {
                if (!el.disabled) {
                    el.disabled = true
                    setTimeout(() => {
                        el.disabled = false
                    }, binding.value || 2000) //2000ms间隔时间
                }
            })
        }
    }
}

在全局注册指令

typescript 复制代码
import dir from "./composables/useDebounce";
const app = createApp(App);
app.directive('preventReClick', dir.preventReClick);

使用

xml 复制代码
<Button v-preventReClick type="submit" @click="handleLogin">登录</Button>
相关推荐
LeeAt4 分钟前
真的!真的就一句话就能明白this指向问题
前端·javascript
阳火锅5 分钟前
都2025年了,来看看前端如何给刘亦菲加个水印吧!
前端·vue.js·面试
hahala233322 分钟前
ESLint 提交前校验技术方案
前端
夕水44 分钟前
ew-vue-component:Vue 3 动态组件渲染解决方案的使用介绍
前端·vue.js
codehub44 分钟前
TypeScript 高频面试题与核心知识总结
typescript
Winwin1 小时前
js基础-数据类型
javascript
Winwin1 小时前
哈?Boolean能作为回调函数?
javascript
我麻烦大了1 小时前
实现一个简单的Vue响应式
前端·vue.js
Shartin1 小时前
CPT208-Human-Centric Computing: Prototype Design Optimization原型设计优化
开发语言·javascript·原型模式
独立开阀者_FwtCoder1 小时前
你用 Cursor 写公司的代码安全吗?
前端·javascript·github