Vue的防抖與節流
首先我們先看一下防抖和節流的定義。
防抖:在同一時間段執行多次,但是只在最后一次有效(執行);每次觸發函數清除掉原來的定時器,重新開始計時。如果在規定時間內不再觸發函數,則執行,否則,清除掉之前的定時器,重新計時。
節流:在一段時間內,只能觸發一次函數。
今天突然發現了一個問題,做搜索效果時每輸入一個字母或者數字,都會立刻請求一次,如果輸入量過大可能會對服務器造成影響,并且點擊刷新時,會立刻請求三次,原因是使用了watch監聽,但是沒有使用防抖函數,現在把防抖函數加入到代碼中。


我在外部建立了名為config的js文件,在其中構建了防抖和節流函數,這里以防抖函數為例。

使用如下代碼引入
import { debounce } from '@/untils/config.js'方法代碼如下

這里的function是第一個參數,200是第二個參數,為計時器時間,可以根據需要來修改。
這里踩了一個坑,雖然requestTable后面沒有了“(){}”,但它還是一個方法,所以調用的時候依然需要加().
如
this.requestTable()
節流函數可依照以上方法來實現,只需要改一個方法名,因為所需要的參數是一樣的。
上一篇: 根據數字不同顯示不同的狀態——( ̄? ̄)
下一篇: 根據數字不同顯示不同的狀態--函數法



