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