vue全局防抖
直接放在main.js文件中
const on = Vue.prototype.$on // 防抖处理 Vue.prototype.$on = function (event, func) { let timer let newFunc = func if (event === 'click') { newFunc = function () { clearTimeout(timer) timer = setTimeout(function () { func.apply(this, arguments) }, 500) } } on.call(this, event, newFunc) }
!!!注意:会对 点击按钮弹出弹窗里的按钮 有一定影响(比如打开弹窗会自动选择弹窗里两个按钮中的第一个),最简单的修改的办法是把弹窗中的按钮更换成 a 或者 div 这种底层标签
防抖是防止最开始的多次点击,如果请求数据时间很长,在发出请求后等待数据回来的这段时间再次点击还是会触发的(这个除了做禁选处理,还没找到更好的处理办法)