export default {
data(){
return {
debounceFun:this.$utils.debounce(this.getList(),800)
}
}
watch:{
form:{
handler(newVal){
this.debounceFun()
},
deep:true
}
在utils.js文件中创建防抖函数
export function debounce(func,wait,immediate){
let timeout,result,
let debounced = function(){
const context = this
const args = arguments
if(timeout){
clearTimeout(timeout)
}
if(immediate){
const callNow = !timeout
timeout = setTimeout(()=>{
timeout = null
},wait)
if(callNow){
result = func.apply(context,args)
}
}else{
timeout = setTimeout(()=>{
func.apply(context,args)
},wait)
}
return result
}
debounced.cancel = function(){
clearTimeout(timeout)
timeout = null
}
return debounced
}
export default{
debounce
}