vue如何使用防抖

  1. 首先先将以下代码复制粘贴至自己的代码中
const debounce = function(handle, delay) {
    var timer = null;
    return function() {
        var _self = this,
            arg = arguments;
        clearTimeout(timer);
        timer = setTimeout(function() {
            handle.apply(_self, arg);
        }, delay);
    }
}
  1. 在页面创建时监听页面变化resize
 this.resizeFn = debounce(this.resize, 200).bind(this); // 防抖并bind this指向
 window.addEventListener("resize", this.resizeFn);

//resize方法,计算页面调整
resize() {
   this.myCharts.resize();
 },
  1. 最后解绑
destroyed() {
   window.removeEventListener("resize", this.resizeFn);
 }

当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定的时间到来之前,又一次触发了事件,就重新开始延时。这样能节约性能,提高页面加载速度。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值