Vue自定義指令-防抖節流

Vue2版本

// 防抖

// <el-button v-debounce="[reset,'click',300]" ></el-button>

// <el-button v-debounce="[reset]" ></el-button>

Vue.directive('debounce', {

? inserted: function (el, binding) {

? ? let [fn, event = "click", time = 300] = binding.value

? ? let timer

? ? el.addEventListener(event, () => {

? ? ? timer && clearTimeout(timer)

? ? ? timer = setTimeout(() => fn(), time)

? ? })

? }

})

// 節流

// <el-button v-debounce="[reset,'click',300]" ></el-button>

// <el-button v-debounce="[reset]" ></el-button>

Vue.directive('throttle', {

? inserted: function (el, binding) {

? ? let [fn, event = 'click', time = 300] = binding.value

? ? let timer, timer_end;

? ? el.addEventListener(event, () => {

? ? ? if (timer) {

? ? ? ? clearTimeout(timer_end);

? ? ? ? return timer_end = setTimeout(() => fn(), time);

? ? ? }

? ? ? fn();

? ? ? timer = setTimeout(() => timer = null, time)

? ? })

? }

})

Vue3版本

// 防抖指令

app.directive('debounce', { beforeMount(el, binding) {

let [fn, event = 'click', time = 300] = binding.value;

let timer;

el.addEventListener(event, () => {

if (timer) clearTimeout(timer); timer = setTimeout(() => fn(), time); }); } });

// 節流指令

app.directive('throttle', { beforeMount(el, binding) {

let [fn, event = 'click', time = 300] = binding.value;

let timer, timer_end;

el.addEventListener(event, () => {

if (timer) { clearTimeout(timer_end); return timer_end = setTimeout(() => fn(), time); } fn(); timer = setTimeout(() => timer = null, time); }); } });

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/901889.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/901889.shtml
英文地址,請注明出處:http://en.pswp.cn/news/901889.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI知識補全(十六):A2A - 谷歌開源的agent通信協議是什么?

名人說&#xff1a;一笑出門去&#xff0c;千里落花風。——辛棄疾《水調歌頭我飲不須勸》 創作者&#xff1a;Code_流蘇(CSDN)&#xff08;一個喜歡古詩詞和編程的Coder&#x1f60a;&#xff09; 上一篇&#xff1a;AI知識補全&#xff08;十五&#xff09;&#xff1a;AI可解…

【機器人創新創業應需明確產品定位與方向指南】

機器人領域的創新創業, 需要對公司和產品的定位和生態進行深入思考, 明確其定位與發展目標, 明確產品在是為G、為B還是為C進行服務。 本文引用地址&#xff1a;https://www.eepw.com.cn/article/202504/469401.htm 超前的、探索性的創新技術一般是面向G端, 而不是面向B端或者C…

網安加·百家講壇 | 劉志誠:AI安全風險與未來展望

作者簡介&#xff1a;劉志誠&#xff0c;樂信集團信息安全中心總監、OWASP廣東區域負責人、網安加社區特聘專家。專注于企業數字化過程中網絡空間安全風險治理&#xff0c;對大數據、人工智能、區塊鏈等新技術在金融風險治理領域的應用&#xff0c;以及新技術帶來的技術風險治理…

TOA與AOA聯合定位的高精度算法,三維、4個基站的情況,MATLAB例程,附完整代碼

本代碼實現了三維空間內目標的高精度定位,結合到達角(AOA) 和到達時間(TOA) 兩種測量方法,通過4個基站的協同觀測,利用最小二乘法解算目標位置。代碼支持噪聲模擬、誤差分析及三維可視化,適用于無人機導航、室內定位等場景。訂閱專欄后可獲得完整代碼 文章目錄 運行結果…

2025MathorcupC題 音頻文件的高質量讀寫與去噪優化 保姆級教程講解|模型講解

2025Mathorcup數學建模挑戰賽&#xff08;媽媽杯&#xff09;C題保姆級分析完整思路代碼數據教學 C題&#xff1a;音頻文件的高質量讀寫與去噪優化 隨著數字媒體技術的迅速發展&#xff0c;音頻處理成為信息時代的關鍵技術之一。在日常生活中&#xff0c;從錄音設備捕捉的原始…

Deno Dep:顛覆傳統的模塊化未來

一、重新定義依賴管理&#xff1a;Deno Dep 的革新哲學 Deno Dep&#xff08;原Deno包管理器&#xff09;徹底重構了JavaScript/TypeScript的依賴管理方式&#xff0c;其核心突破體現在&#xff1a; 1. 瀏覽器優先的模塊化&#xff08;URL-Centric Modules&#xff09; // 直…

歐拉系統升級openssh 9.7p1

開發的系統準備上線&#xff0c;甲方對歐拉服務器進行了掃描&#xff0c;發現openssh版本為8.2p1&#xff0c;存在漏洞&#xff0c;因此需要升級openssh至9.7p1。歐拉系統版本為20.03 SP3。 1、下載openssh 9.7p1 https://www.openssh.com/releasenotes.html&#xff0c; 將下…

如何精通C++編程?

如果從學生時代算起的話&#xff0c;我學習和使用C已經差不多快十年了&#xff0c;仍然不敢說自己已經掌握了C的全部特性&#xff0c;但或許能夠給出一些有用的建議吧。 我學習C全靠自學&#xff0c;花費了不少的功夫&#xff0c;在這里分享一些學習心得&#xff0c;希望對大家…

提高Qt工作線程的運行速度

1. 使用線程池&#xff08;QThreadPool&#xff09;替代單一線程 做過&#xff0c;但是當時沒想到。。。 目的&#xff1a;減少線程創建和銷毀的開銷&#xff0c;復用線程資源。 實現步驟&#xff1a; 創建自定義任務類&#xff1a;繼承QRunnable&#xff0c;實現run()方法。…

Solon AI MCP Server 入門:Helloworld (支持 java8 到 java24。國產解決方案)

目前網上能看到的 MCP Server 基本上都是基于 Python 或者 nodejs &#xff0c;雖然也有 Java 版本的 MCP SDK&#xff0c;但是鮮有基于 Java 開發的。 作為Java 開發中的國產頂級框架 Solon 已經基于 MCP SDK 在進行 Solon AI MCP 框架開發了&#xff0c;本文將使用 Solon AI …

STL之迭代器(iterator)

迭代器的基本概念 迭代器(iterator)模式又稱為游標(Cursor)模式&#xff0c;用于提供一種方法順序訪問一個聚合對象中各個元素, 而又不需暴露該對象的內部表示。或者這樣說可能更容易理解&#xff1a;Iterator模式是運用于聚合對象的一種模式&#xff0c;通過運用該模式&#…

Android系統通知機制深度解析:Framework至SystemUI全鏈路剖析

1. 前言 在Android 13的ROM定制化開發中&#xff0c;系統通知機制作為用戶交互的核心組件&#xff0c;其實現涉及Framework層到SystemUI的復雜協作。本文將深入剖析從Notification發送到呈現的全鏈路流程&#xff0c;重點解析關鍵類的作用機制及系統服務間的交互邏輯&#xff…

UE5角色狀態機中跳躍落地移動銜接問題

UE5系列文章目錄 文章目錄 UE5系列文章目錄前言一、狀態機設置二、主要藍圖 前言 先說說遇到的問題&#xff0c;在我按空格鍵跳躍落地以后&#xff0c;角色落地再按WSAD鍵移動就出現了畫面中角色抽搐的情況 一、狀態機設置 在Unreal Engine 5中創建角色時&#xff0c;處理跳…

使用SVM對心臟數據是否患病進行分類預測

作者簡介 杜嘉寶&#xff0c;男&#xff0c;西安工程大學電子信息學院&#xff0c;2024級研究生 研究方向&#xff1a;變壓器故障預警與檢測 電子郵件&#xff1a;djb857497378gmail.com 王子謙&#xff0c;男&#xff0c;西安工程大學電子信息學院&#xff0c;2024級研究生&a…

Node做BFF中間層架構優化前端開發體驗并提升系統整體性能。

文章目錄 1. BFF 層的定位2. 技術選型3. 架構設計3.1 分層設計3.2 示例架構 4. 核心功能實現4.1 數據聚合4.2 權限校驗4.3 緩存優化 5、實戰示例1. 場景說明2. ECharts 數據格式要求3. BFF 層實現步驟3.1 接收前端參數3.2 調用后端服務獲取數據 4. 前端使用 總結 在使用 Node.j…

文件系統 軟硬連接

&#x1f33b;個人主頁&#xff1a;路飛雪吖~ &#x1f320;專欄&#xff1a;Linux 目錄 一、理解文件系統 &#x1f320;磁盤結構 二、軟硬連接 &#x1f31f;軟硬鏈接 &#x1f320;軟鏈接&#xff1a; &#x1f320;硬鏈接&#xff1a; &#x1f31f;理解軟硬鏈接的應…

單片機 | 基于51單片機的自動循跡小車設計

以下是一個基于51單片機的自動循跡小車設計詳解,包含原理、公式和完整代碼: 一、系統原理 核心模塊: 傳感器:紅外對管(TCRT5000)x4主控芯片:STC89C52RC(51單片機)電機驅動:L298N驅動模塊電源:7.4V鋰電池(電機) + 5V穩壓(單片機)工作原理: 紅外對管發射紅外線,…

2025.04.17【Stacked area】| 生信數據可視化:堆疊區域圖深度解析

文章目錄 生信數據可視化&#xff1a;堆疊區域圖深度解析堆疊面積圖簡介為什么使用堆疊面積圖如何使用R語言創建堆疊面積圖安裝和加載ggplot2包創建堆疊面積圖的基本步驟示例代碼 解讀堆疊面積圖堆疊面積圖的局限性實際應用案例示例&#xff1a;基因表達量隨時間變化 結論 生信…

基于單片機的智能養生油炸爐系統設計與實現

標題:基于單片機的智能養生油炸爐系統設計與實現 內容:1.摘要 本文針對傳統油炸爐功能單一、無法滿足現代養生需求的問題&#xff0c;設計并實現了基于單片機的智能養生油炸爐系統。通過采用STC89C52單片機作為控制核心&#xff0c;結合溫度傳感器、液位傳感器、繼電器等硬件&…

QML與C++:基于ListView調用外部模型進行增刪改查(附自定義組件)

目錄 引言相關閱讀項目結構文件組織 核心技術實現1. 數據模型設計聯系人項目類 (datamodel.h)數據模型類 (datamodel.h)數據模型實現 (datamodel.cpp) 2. 主程序入口點 (main.cpp)3. 主界面設計 (Main.qml)4. 聯系人對話框 (ContactDialog.qml)5. 自定義組件CustomTextField.qm…