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>
相关推荐
是忽然之间13 分钟前
vue对接帆软bi
前端
海底火旺16 分钟前
从零实现语音合成:基于火山引擎TTS的前端实践
前端·人工智能·react.js
jackeyfive16 分钟前
最快速搭建博客并部署到 GitHub Pages
前端·github
前端付豪17 分钟前
汇丰实时风控数据流揭秘:Kafka + Flink + CEP 规则引擎全链路实战
前端·后端·架构
Sibyllala21 分钟前
UE5.4——使用UltraDynamicSky实现天气切换和时间变化
前端
溪饱鱼33 分钟前
第七章: SEO与渲染方式 三
前端·seo
爱上妖精的尾巴40 分钟前
3-16单元格区域尺寸调整(发货单记录保存-方法2)学习笔记
javascript·笔记·学习·wps·js宏·jsa
TE-茶叶蛋1 小时前
React & Vue 编译/运行流程
前端·vue.js·react.js
kuiini1 小时前
学习 React【Plan - June - Week 1】
前端·react.js
Hilaku1 小时前
低代码是“未来”还是“骗局”?作为前端我被内耗到了
前端·javascript·低代码