//防抖函数的代码如下:
export function debounce(fn, delay) {
let timer = null;
return function () {
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this);
}, delay);
}
}
在vue中的使用:首先在mounted函数里面调用这个函数,并且将返回值保存到data的一个变量中(在create函数里面获取不到dom元素)
mounted函数执行完毕后,refresh是一个函数,相当于:
refresh(){
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
fn.apply(this);
}, delay);
}
当需要进行防抖操作时,调用这个refresh函数,比如图片加载完成时的防抖: