vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)過程
防抖的概念和意義
1. 概念
連續(xù)點(diǎn)擊按鈕時(shí),按鈕的點(diǎn)擊事件只會(huì)觸發(fā)觸發(fā)一次,結(jié)束連續(xù)點(diǎn)擊后,再次點(diǎn)擊按鈕時(shí)才會(huì)觸發(fā)按鈕的點(diǎn)擊事件
2. 意義
按鈕防抖是針對(duì)按鈕操作時(shí),用戶連續(xù)點(diǎn)擊按鈕時(shí)也會(huì)每次觸發(fā)按鈕的綁定的點(diǎn)擊事件,這會(huì)造成多次無效的觸發(fā)
實(shí)現(xiàn)過程
1. 通過定義指令方式
通過定義指令方式實(shí)現(xiàn)防抖限制,可為需要防抖的按鈕添加防抖的指令即可實(shí)現(xiàn)按鈕的防抖操作限制,使用方式簡潔
2. 實(shí)現(xiàn)代碼
// 點(diǎn)擊防抖 const throttle = { bind: (el, binding) => { let throttleTime = binding.value // 防抖時(shí)間 if (!throttleTime) { // 用戶若不設(shè)置防抖時(shí)間,則默認(rèn)1s throttleTime = 1000 } let timer let disable = false el.addEventListener('click', event => { if (timer) { clearTimeout(timer) } if (!disable) { // 第一次執(zhí)行(一點(diǎn)擊觸發(fā)當(dāng)前事件) disable = true } else { event && event.stopImmediatePropagation() } timer = setTimeout(() => { timer = null disable = false }, throttleTime) }, true) } }
3. 使用案例代碼
// 1. 注冊(cè)指令 Vue.directive('throttle', throttle); // 2. 按鈕添加防抖指令 // 2.1 普通按鈕或dom節(jié)點(diǎn)也可添加指令實(shí)現(xiàn)防抖顯示 // eg1: <button v-throttle="2000">按鈕防抖</button> // 2.2 element組件按鈕實(shí)現(xiàn)防抖 <el-button v-throttle="2000">按鈕防抖</el-button>
總結(jié)
到此這篇關(guān)于vue項(xiàng)目中按鈕防抖處理實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)vue項(xiàng)目按鈕防抖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue預(yù)覽 pdf、word、xls、ppt、txt文件的實(shí)現(xiàn)方法
這篇文章主要介紹了vue預(yù)覽 pdf、word、xls、ppt、txt文件的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04vue3中的reactive函數(shù)聲明數(shù)組方式
這篇文章主要介紹了vue3中的reactive函數(shù)聲明數(shù)組方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Vue2.0+ElementUI實(shí)現(xiàn)查詢條件展開和收起功能組件(代碼示例)
文章介紹了如何將查詢條件表單封裝成一個(gè)通用組件,以提高開發(fā)效率,組件支持多條件的折疊和展開功能,并提供了使用示例,感興趣的朋友一起看看吧2025-01-01超詳細(xì)動(dòng)手搭建一個(gè)VuePress 站點(diǎn)及開啟PWA與自動(dòng)部署的方法
這篇文章主要介紹了超詳細(xì)動(dòng)手搭建一個(gè)VuePress 站點(diǎn)及開啟PWA與自動(dòng)部署的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01詳解項(xiàng)目升級(jí)到vue-cli3的正確姿勢(shì)
這篇文章主要介紹了詳解項(xiàng)目升級(jí)到vue-cli3的正確姿勢(shì),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01vue uniapp 防止按鈕多次點(diǎn)擊的三種實(shí)現(xiàn)方式
最近的項(xiàng)目完成后,在性能優(yōu)化階段需要做按鈕的防止重復(fù)點(diǎn)擊功能,本文主要介紹了vue uniapp 防止按鈕多次點(diǎn)擊的三種實(shí)現(xiàn)方式,具有一定的參考價(jià)值,感興趣的可以了解一下2023-08-08Vue3-新特性defineOptions和defineModel示例詳解
在Vue3.3中新引入了defineOptions宏主要是用來定義Option API的選項(xiàng),可以用defineOptions定義任意的選項(xiàng),props、emits、expose、slots除外,本文給大家介紹Vue3-新特性defineOptions和defineModel,感興趣的朋友一起看看吧2023-11-11