按钮连续点击事件节流防抖

原文链接:https://dsx2016.com/?p=314

➢ 连续点击

只要是有点击事件的地方,都应该注意节流和防抖

➢ 节流防抖

  • 函数节流: 指定时间间隔内只会执行一次任务;

  • 函数防抖: 任务频繁触发的情况下,只有任务触发的间隔超过指定间隔的时候,任务才会执行。

➢ 1s点击

1s内只允许发送请求(出发事件)一次(可多次点击)

test(){
    console.log(`点击登录 >>>>>>>>>>>>`)
}

添加节流

vue设置变量

stopClickLogin:false

vue设置函数

test(){
    let that=this
    if(that.stopClickLogin){
        console.log(`请等待1s后再次点击 >>>>>>>>>`)
        return false
    }
    that.stopClickLogin=true
    setTimeout(()=>{
        that.stopClickLogin=false
    },1000)
    console.log(`do something >>>>>>>>>`)
}

➢ 函数封装

公共函数设置

stopClick(name=`stopClick`,time=1000,msg=`请等待1s后再次点击`){
    return new Promise((resolve,reject)=>{
        if(that[name]){
        console.log(`${msg} >>>>>>>>>`)
        return false
        }
        that[name]=true
        setTimeout(()=>{
            that[name]=false
        },time)
        resolve()
    })
}

引用节流函数

test(){
    let that=this
    that.stopClick(`stopClickLogin`).then(()=>{
        console.log(`do something >>>>>>>>>`)
    })
}

封装之后就不用在每个点击的地方都写一遍重复函数了

  • 7
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值