简易版防抖
存入utils里,使用时引入即可
export function debounceSimple(func, wait, immediate) {
let timeout
return function(...args) {
const context = this
if (timeout) clearTimeout(timeout)
if (immediate) {
const callNow = !timeout
timeout = setTimeout(function() {
timeout = null
}, wait)
if (callNow) func.apply(context, args)
} else {
timeout = setTimeout(function() {
func.apply(context, args)
}, wait)
}
}
}
页面使用时:
import { debounceSimple } from '@/utils'
// 在data里赋值变量 vm=this
// @click="toSearchName(vm)" 传入参数vm
toSearchName: debounceSimple((vm) => {
// 逻辑代码
}, 200, false)
// 传入true,首次点击立即执行,相当于防抖。传入false,最后一次点击执行,相当于节流。