dandanyajin
今天更新博客了吗?

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 这种底层标签

防抖是防止最开始的多次点击,如果请求数据时间很长,在发出请求后等待数据回来的这段时间再次点击还是会触发的(这个除了做禁选处理,还没找到更好的处理办法)

posted on 2021-05-10 14:23  dandanyajin  阅读(159)  评论(0编辑  收藏  举报