怎么在vue中用函数防抖和函数节流

函数防抖

<div>
  <button @click="click">点我进行函数防抖</button>
</div>

script标签下定义一个函数

function throttle (method) {
  clearTimeout(method.timer)
  method.timer = setTimeout(function () {
    method.call()
  }, 1000)
}

methods里面调用它们

click () {
 throttle(this.doSomething)
},
doSomething () {
  console.log('在这里进行防抖操作')
},

然后连续点击多次,只生效最后一次

函数节流

还是上面的例子

<div>
  <button @click="click">点我进行函数防抖</button>
</div>

直接在mothods里面写

bbb () {
  this.doSomething()
 },
 doSomething () {
   var _timer = ' '
   if (_timer) {
     return
   }
   _timer = setTimeout(function () {
     console.log('这里进行节流操作')
     clearTimeout(_timer)
     _timer = ''
   }, 1000)
 },

管你点多少下,我一秒只生效一次。

再加一个怎么在js中实现的方式吧。

防抖:

function debounce() { 
    let timeId = null;
    return function() {
        if(timeId) {
            clearTimeout(timeId);
        }
        timeId = setTimeout(() => {
           console.log('这里操作')
        }, 1000)
    }
}
window.onresize = debounce()

节流:

function jie() { 
    let timeId = null;
    return function() {
        if(timeId) {
            return;
        }
        timeId = setTimeout(() => {
           console.log('这里操作')
           timeId = null
        }, 1000)
    }
}

window.onresize = jie()
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值