//js
/**
* 函数节流
* @param func
* @param wait
* @returns {function(...[*]=)}
*/
export const throttle = (func, wait = 1500) => {
let timeout;
return function() {
let context = this;
let args = arguments;
if (!timeout) {
timeout = setTimeout(() => {
timeout = null;
func.apply(context, args)
}, wait)
}
}
}
/**
* 函数防抖
* @param func
* @param wait
* @returns {function(...[*]=)}
*/
export const debounce = (func, wait = 1500) => {
let timeout;
return function() {
let context = this;
let args = arguments;
if (timeout) clearTimeout(timeout);
timeout = setTimeout(() => {
func.apply(context, args)
}, wait);
}
}
//vue
import { debounce, throttle } from "./tool";
methods: {
tabbtn: debounce(function (index) {
}, 1000),
}