1.新建antivibthrot.js文件
// 节流:触发函数事件后,短时间间隔内无法连续调用,只有上一次函数执行后,过了规定的时间间隔,才能进行下一次的函数调用。
let lastCall = 0
export function throttle(fn, delay) {
const now = new Date().getTime();
if (now - lastCall < delay) {
return
}
lastCall = now
fn.apply(this, arguments)
}
// 防抖
let timer
export function debounce(fn, delay) {
clearTimeout(timer)
timer = setTimeout(() => {
fn();
}, delay);
}
2.应用
//在当前页面引入
import {throttle,debounce} from "@/*/antivibthrot.js"
click(){
throttle(() => {
//需要防抖执行的逻辑
}, 1000)
debounce(() => {
//需要节流执行的逻辑
}, 1000)
}