许学德 2019-06-27
在短时间多次触发某个函数的场景下,对执行函数进行节流,节省无效浪费
1. 使用场景

export function debounce(fun, delay){
let timer //定时器
return function (...args){
if (timer) {
clearTimeout(timer)
}
timer = setTimerout(() => { //
fun.apply(this, args)
}, delay)
}
}注:代码来源vue-music音乐播放器项目
2. 函数调用
this.$watch(
"query",
debounce(newQuery => {
// 不超过200ms函数节流
this.$emit("query", newQuery);
}, 200)
);this.$emit("query", newQuery);前给函数加个节流函数
3. 误区