Vue中节流防抖的使用

123 阅读1分钟

通过创建一个Utils.js,写入如下代码

// 函数防抖(debounce)
// 解释:当持续触发某事件时,一定时间间隔内没有再触发事件时,
// 事件处理函数才会执行一次,如果设定的时间间隔到来之前,又一次触发了事件,就重新开始延时。
let timeout = null
function debounce(fn, wait) {
 if(timeout !== null) clearTimeout(timeout)
 timeout = setTimeout(fn, wait)
}

//函数节流(throttle)
//解释:当持续触发事件时,有规律的每隔一个时间间隔执行一次事件处理函数。
let prev = Date.now()
function throttle(fn,delay){
    let now =Date.now()
    console.log(prev,now)
    if (now - prev > delay) {          
        fn()        
        prev = Date.now()       
    }  
}
export {debounce,throttle}

通过ES6的语法按需导入即可

import {throttle,timeout} from "../Utils";

使用时调用方法即可