防抖目标是为了短时间内屡次触发事件,但只执行一次
let timer // 如果是vue的能够在data外面定义function handleClick() { clearTimeout(timer) timer = setTimeout(() => { 要执行的代码放在此处 }, 300) // 300毫秒反复点击,只触发一次}
场景二:有时候点击删除屡次点击会呈现同个id删除前面的接口会报错
解决办法一:是用下面的防抖
解决办法二:
let loading=falsefunction handleDelete(id) { if(loading) return loading = true //上面写接口回调,调完接口后将loading复原false}
二者办法的成果一样,前者是最初次事件执行,后者是第一次事件执行,前面的事件锁住不执行
集体比拟喜爱第二种,实际效果也更好