首先自定义一个防抖函数模块,因为一个项目中可能会多次引用防抖函数
创建文件 common.js
内容为
export function debounce (fn, delay) {
// 记录上一次的延时器
var timer = null
return function () {
var args = arguments
var that = this
// 清除上一次延时器
clearTimeout(timer)
timer = setTimeout(function () {
fn.apply(that, args)
}, delay)
}
}
然后在要使用的模块中引入防抖函数
在使用的时候,我在搜索功能上使用了函数防抖 使用方式如下:
searchsbUsered: debounce(function () {
this.searchsbUser() //这个函数为搜索事件
}, 1000),
注意在点击的dom上(搜索按钮)绑定的不是搜索事件,而是searchsbUsered这个事件,延迟不能太长,太长极其影响体验效果。