Vue中的全局指令防止按鈕重復(fù)點(diǎn)擊
全局指令防止按鈕重復(fù)點(diǎn)擊
1.common.js
首先引入Vue
import Vue from 'vue'; const preventReClick = Vue.directive('preventReClick', { ? inserted: function (el, binding) { ? ? el.addEventListener('click', () => { ? ? ? if (!el.disabled) { ? ? ? ? el.disabled = true ? ? ? ? setTimeout(() => { ? ? ? ? ? el.disabled = false ? ? ? ? }, binding.value || 3000) ? ? ? } ? ? ? console.log(el.disabled) ? ? }) ? } }); ? export { ? preventReClick }
2.在需要引入的頁(yè)面引入(**.vue)
在按鈕上添加v-preventReClick
<el-button ?size="small" type="primary" @click="handleSave('form')" v-preventReClick>確定</el-button>
從common.js導(dǎo)入指令preventReClick
import preventReClick from '../common' //防多次點(diǎn)擊,重復(fù)提交
防重復(fù)點(diǎn)擊(vue指令實(shí)現(xiàn))
阻止快速點(diǎn)擊按鈕會(huì)重復(fù)多次調(diào)用接口的
定義全局指令
// directive.js export default { ? install (Vue) { ? ? // 防重復(fù)點(diǎn)擊(指令實(shí)現(xiàn)) ? ? Vue.directive('repeatClick', { ? ? ? inserted (el, binding) { ? ? ? ? el.addEventListener('click', () => { ? ? ? ? ? if (!el.disabled) { ? ? ? ? ? ? el.disabled = true ? ? ? ? ? ? setTimeout(() => { ? ? ? ? ? ? ? el.disabled = false ? ? ? ? ? ? }, binding.value || 1000) ? ? ? ? ? } ? ? ? ? }) ? ? ? } ? ? }) ? } }
在main.js引用
import directive from 'directive.js'; vue.use(directive );
按鈕調(diào)用直接加v-preventReClick
<el-button v-repeatClick type="prismary" style="width:100%;" @click="handleSubmit"></el-button>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue中this.$nextTick()方法的使用及代碼示例
$nextTick()是Vue.js框架中的一個(gè)方法,它主要用于DOM操作,當(dāng)我們修改Vue組件中的數(shù)據(jù)時(shí),Vue.js會(huì)在下次事件循環(huán)前自動(dòng)更新視圖,并異步執(zhí)行$nextTick()中的回調(diào)函數(shù),本文主要介紹了Vue中this.$nextTick()方法的使用及代碼示例,需要的朋友可以參考下2023-05-05在 Vue-CLI 中引入 simple-mock實(shí)現(xiàn)簡(jiǎn)易的 API Mock 接口數(shù)據(jù)模擬
本文以 Vue-CLI 為例介紹引入 simple-mock 實(shí)現(xiàn)前端開(kāi)發(fā)數(shù)據(jù)模擬的步驟。感興趣的朋友跟隨小編一起看看吧2018-11-11vue構(gòu)建單頁(yè)面應(yīng)用實(shí)戰(zhàn)
本篇文章主要介紹了vue構(gòu)建單頁(yè)面應(yīng)用實(shí)戰(zhàn),使用 SPA,沒(méi)有頁(yè)面切換,就沒(méi)有白屏阻塞,可以大大提高 H5 的性能,達(dá)到接近原生的流暢體驗(yàn)。2017-04-04vue-mugen-scroll組件實(shí)現(xiàn)pc端滾動(dòng)刷新
這篇文章主要為大家詳細(xì)介紹了vue-mugen-scroll組件實(shí)現(xiàn)pc端滾動(dòng)刷新,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08淺談angular4.0中路由傳遞參數(shù)、獲取參數(shù)最nice的寫(xiě)法
下面小編就為大家分享一篇淺談angular4.0中路由傳遞參數(shù)、獲取參數(shù)最nice的寫(xiě)法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03vue3組合式API中setup()概念和reactive()函數(shù)的用法
這篇文章主要介紹了vue3組合式API中setup()概念和reactive()函數(shù)的用法,接下來(lái)的事件,我將帶著你從淺到深分析為什么我們需要學(xué)習(xí)組合式API以及我們的setup()函數(shù)作為入口函數(shù)的一個(gè)基本的使用方式,需要的朋友可以參考下2023-03-03vue中對(duì)虛擬dom的理解知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理了一篇關(guān)于vue中對(duì)虛擬dom的理解知識(shí)點(diǎn)總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。2021-06-06vue3父子同信的雙向數(shù)據(jù)的項(xiàng)目實(shí)現(xiàn)
我們知道的是,父?jìng)髯拥耐ㄐ牛妥觽鞲傅耐ㄐ?,那如何?shí)現(xiàn)父子相互通信的呢,本文就來(lái)詳細(xì)的介紹一下,感興趣的可以了解一下2023-08-08