通过创建一个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";