2

背景:小程序有的地方点击 如果请求比较慢,就会打开两次新页面,所以这里对用户短时间双击进行了处理
如果有更好的方法 请留言哦 我参考学习下
我也是参考了别人的:https://blog.csdn.net/weixin_...
1.封装公共方法

export function disableDoubleClick(fn, flag, data = {}) {
  let that = this;
//这里flag 也是为了防止一个页面多个点击事件

  if (that[flag]) {
    that[flag] = false;
    fn(data);
    setTimeout(function() {
      that[flag] = true;
    }, 1500)
  } else {
    //如果一直走else分支可能是你没有在页面的data下面挂载flag:true,不然一直都会走else
    console.log("请稍后点击")
  }
}

2.挂在在vue中

import { disableDoubleClick } from '../utils/utilsFn.js'
Vue.prototype.$disableDoubleClick = disableDoubleClick;
  1. 需要的页面使用
     <view class="xf-act-btn"    @click="$disableDoubleClick (handleLogin ,'onoff')" >开始提货</view>
     <view class="history-btn"  @click="$disableDoubleClick(historyPage ,'onoff1')">历史提货</view>


注意data定义一下,这里可能我处理的复杂了,可以优化
data(){
  return {
    onoff:true,
    onoff1:true,
  }
 }

那年
115 声望12 粉丝