背景:小程式有的地方點選 如果請求比較慢,就會開啟兩次新頁面,所以這裡對使用者短時間雙擊進行了處理
如果有更好的方法 請留言哦 我參考學習下
我也是參考了別人的: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;
- 需要的頁面使用
<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,
}
}