成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Vue 防止短時(shí)間內(nèi)連續(xù)點(diǎn)擊后多次觸發(fā)請(qǐng)求的操作

瀏覽:38日期:2022-11-01 10:35:17

如果連續(xù)點(diǎn)擊提交按鈕,可能會(huì)重復(fù)提交數(shù)據(jù),導(dǎo)致出錯(cuò),解決的方法可以使用disabled限制點(diǎn)擊,感覺(jué)體驗(yàn)不是太好,所有給大家分享下面的方法

<el-button @click='throttle()'>測(cè)試</el-button> export default { data(){ return { lastTime:0 //默認(rèn)上一次點(diǎn)擊時(shí)間為0 } }}

methods:{ throttle(){ //獲取當(dāng)前時(shí)間的時(shí)間戳 let now = new Date().valueOf(); //第一次點(diǎn)擊 if(this.lastTime == 0){ console.log(’觸發(fā)事件’); this.lastTime = now; }else{ if((now-this.lastTime) > 2000){ //重置上一次點(diǎn)擊時(shí)間,2000是我自己設(shè)置的2秒間隔,根據(jù)自己的需要更改 this.lastTime = now; console.log(’間隔大于2秒,觸發(fā)方法’); //添加自己要調(diào)用的方法 }else{ console.log(’不觸發(fā)’); } } },}

這種方法雖然很好,但是遇到請(qǐng)求超時(shí)的情況可能不是太好處理(網(wǎng)絡(luò)原因、數(shù)據(jù)太大)。考慮通過(guò)后端是否返回res來(lái)控制。方法還有待提高!僅供參考~

補(bǔ)充知識(shí):解決vuex中module過(guò)多時(shí),需一個(gè)個(gè)引入的問(wèn)題

在項(xiàng)目開(kāi)發(fā)中,使用vuex,如果項(xiàng)目過(guò)大,vuex就需要模塊化,但是如果module分的過(guò)多,我們就需要在store的index.js中一個(gè)個(gè)引入,這樣未免太麻煩,所以webpack出來(lái)了個(gè)配置,可以解決這個(gè)問(wèn)題,無(wú)需多次引入,懶癌患者福音,

以下是解決方案

import Vue from ’vue’import Vuex from ’vuex’import getters from ’./getters’Vue.use(Vuex)const modulesFiles = require.context(’./modules’, true, /.js$/)const modules = modulesFiles.keys().reduce((modules, modulePath) => { const moduleName = modulePath.replace(/^./(.*).w+$/, ’$1’) const value = modulesFiles(modulePath) modules[moduleName] = value.default return modules}, {})const store = new Vuex.Store({ modules, getters})export default store

配置了這個(gè)后就無(wú)需一個(gè)個(gè)引入模塊了;

以上這篇Vue 防止短時(shí)間內(nèi)連續(xù)點(diǎn)擊后多次觸發(fā)請(qǐng)求的操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章: