vue3按鈕點擊頻率控制的實現(xiàn)示例
更新時間:2024年01月03日 15:38:27 作者:laizhenghua
在前端開發(fā)中,當(dāng)用戶頻繁連續(xù)點擊按鈕,可能會導(dǎo)致頻繁的請求或者觸發(fā)過多的操作,本文主要介紹了vue3按鈕點擊頻率控制的實現(xiàn)示例,感興趣的可以了解一下
現(xiàn)有一個按鈕,如下圖
點擊時
再次點擊
刷新窗口再次點擊
刷新窗口依然可以實現(xiàn)點擊頻率控制。
代碼實現(xiàn):
<template> <!--<el-config-provider :locale="locale"> <router-view/> </el-config-provider>--> <el-button type="primary" @click="handleClick">click</el-button> </template> <script setup lang="ts"> // @ts-ignore import zhCn from 'element-plus/dist/locale/zh-cn.mjs' import { reactive } from 'vue' import { ElMessage } from 'element-plus' // 國際化配置 const locale = reactive(zhCn) const handleClick = () => { // 間隔為30s const delay = 30000 const key = 'ls_handle_click' let cache = getExpiredItem(key) if (cache <= 0) { setExpiredItem(key, Date.now(), delay) } else { const now = Date.now() const diff = delay / 1000 - (now - cache) / 1000 ElMessage({ showClose: true, message: `點擊過于頻繁,請${Math.floor(diff)}秒后嘗試!`, type: 'warning', }) return } // 執(zhí)行按鈕功能(處理業(yè)務(wù)邏輯) handleAlert() } // 封裝可以設(shè)置過期時間的localStorage const setExpiredItem = (key, value, expires) => { const data = { value: value, expires: Date.now() + expires } window.localStorage.setItem(key, JSON.stringify(data)) } // 封裝獲取有過期時間的localStorage(我們規(guī)定如果key到期則返回-1,如果沒有這個key就返回0) const getExpiredItem = (key) => { const value = window.localStorage.getItem(key) if (!value) { return 0 } const data = JSON.parse(value) if (Date.now() > data.expires) { window.localStorage.removeItem(key) return -1 } return data.value } // 按鈕功能 const handleAlert = () => { ElMessage({ showClose: true, message: 'this is a success message.', type: 'success', }) } </script> <style scoped lang="scss"> </style>
到此這篇關(guān)于vue3按鈕點擊頻率控制的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)vue3點擊頻率控制內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue3 + TypeScript 開發(fā)總結(jié)
本文直接上 Vue3 + TypeScript + Element Plus 開發(fā)的內(nèi)容,感興趣的話一起來看看吧2021-08-08