vue3+ts如何通過(guò)lodash實(shí)現(xiàn)防抖節(jié)流詳解
安裝lodash
npm i --save-dev @types/lodash
在組件中引入lodash
import * as _ from 'lodash'
防抖
_.debounce(func, [wait=0], [options=]) 函數(shù)在延遲幾毫秒之后才執(zhí)行,也就是停止改變幾秒后執(zhí)行
參數(shù)
- func (Function): 要防抖動(dòng)的函數(shù)。
- [wait=0] (number): 需要延遲的毫秒數(shù)。
- [options=] (Object): 選項(xiàng)對(duì)象。
- [options.leading=false] (boolean): 指定在延遲開(kāi)始前調(diào)用。
- [options.maxWait] (number): 設(shè)置 func 允許被延遲的最大值。
- [options.trailing=true] (boolean): 指定在延遲結(jié)束后調(diào)用。
<script setup lang="ts"> import * as _ from 'lodash' //防抖的函數(shù)應(yīng)該是click事件 const fangdou = _.debounce(click, 500, { leading: true, // 延長(zhǎng)開(kāi)始后調(diào)用 trailing: false // 延長(zhǎng)結(jié)束前調(diào)用 }) function click() { //響應(yīng)點(diǎn)擊 console.log("123") } //移除組件時(shí),取消防抖 onUnmounted(()=>{ fangdou.cancel() }) </script> <template> <button @click="fangdou">fangdou</button> </template>
節(jié)流
_.throttle(func, [wait=0], [options=]) 第一次會(huì)立即執(zhí)行一次,然后等到過(guò)了毫秒數(shù)才會(huì)執(zhí)行,以一定的頻率后續(xù)處理
參數(shù)
- func (Function): 要節(jié)流的函數(shù)。
- [wait=0] (number): 需要節(jié)流的毫秒。
- [options=] (Object): 選項(xiàng)對(duì)象。
- [options.leading=true] (boolean): 指定調(diào)用在節(jié)流開(kāi)始前。
- [options.trailing=true] (boolean): 指定調(diào)用在節(jié)流結(jié)束后。
<script setup lang="ts"> import * as _ from 'lodash' const throttle = _.throttle(() =>{ console.log('I get fired every two seconds!') },2000,{ leading: true, trailing: false }) //移除組件時(shí),取消節(jié)流 onUnmounted(()=>{ throttle.cancel() }) </script> <template> <button @click="throttle">jieliu</button> </template>
補(bǔ)充:vue3 引入lodash報(bào)錯(cuò)
在 shims-vue.d.ts 文件夾下添加
declare module 'lodash'
全部代碼
/* eslint-disable */ declare module '*.vue' { import type { DefineComponent } from 'vue' const component: DefineComponent<{}, {}, any> export default component } declare module 'lodash'
總結(jié)
到此這篇關(guān)于vue3+ts如何通過(guò)lodash實(shí)現(xiàn)防抖節(jié)流的文章就介紹到這了,更多相關(guān)vue3+ts lodash防抖節(jié)流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
element-plus/element-ui走馬燈配置圖片及圖片自適應(yīng)的最簡(jiǎn)便方法
走馬燈功能在展示圖片時(shí)經(jīng)常用到,下面這篇文章主要給大家介紹了關(guān)于element-plus/element-ui走馬燈配置圖片及圖片自適應(yīng)的最簡(jiǎn)便方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03reactive readonly嵌套對(duì)象轉(zhuǎn)換功能實(shí)現(xiàn)詳解
這篇文章主要為大家介紹了reactive readonly嵌套對(duì)象轉(zhuǎn)換功能實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12vue元素樣式實(shí)現(xiàn)動(dòng)態(tài)改變方法介紹
vue通過(guò)js動(dòng)態(tài)修改元素的樣式,如果是固定的幾個(gè)樣式,我常用的是綁定元素的calss,給不同的class寫(xiě)好需要的樣式,js控制是否使用這個(gè)class2022-09-09在vue中實(shí)現(xiàn)給每個(gè)頁(yè)面頂部設(shè)置title
這篇文章主要介紹了在vue中實(shí)現(xiàn)給每個(gè)頁(yè)面頂部設(shè)置title,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07解決ant-design-vue中menu菜單無(wú)法默認(rèn)展開(kāi)的問(wèn)題
這篇文章主要介紹了解決ant-design-vue中menu菜單無(wú)法默認(rèn)展開(kāi)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10vue使用axios實(shí)現(xiàn)文件上傳進(jìn)度的實(shí)時(shí)更新詳解
最近在學(xué)習(xí)axios,然后項(xiàng)目就用到了,所以這篇文章主要給大家介紹了關(guān)于vue中利用axios實(shí)現(xiàn)文件上傳進(jìn)度的實(shí)時(shí)更新的相關(guān)資料,文中先對(duì)axios進(jìn)行了簡(jiǎn)單的介紹,方法大家理解學(xué)習(xí),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Vue使用v-bind動(dòng)態(tài)綁定CSS樣式
這篇文章給大家介紹了Vue使用v-bind動(dòng)態(tài)綁定CSS樣式,文中有相關(guān)的代碼示例供大家參考,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-02-02vue router 跳轉(zhuǎn)后回到頂部的實(shí)例
今天小編就為大家分享一篇vue router 跳轉(zhuǎn)后回到頂部的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08詳解Vue2.x-directive的學(xué)習(xí)筆記
這篇文章主要介紹了詳解Vue2.x-directive的學(xué)習(xí)筆記,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07Vue2.0 實(shí)現(xiàn)移動(dòng)端圖片上傳功能
本文主要介紹VUE2.0圖片上傳功能的實(shí)現(xiàn)。原理是通過(guò)js控制和input標(biāo)簽的方式完成這一效果,無(wú)需加載其他組件。具體實(shí)例大家大家參考下本文2018-05-05