節流函數


1  //使用場景
2 created(){
3           this.$watch('query',debounce((newQuery)=>{//當搜索值發生變化的時候,將搜索值傳遞出去
4             this.$emit('query',newQuery )//如果在200ms內再次觸發函數,不會調用里面的query事件;
5           },200))
6       }
 1 export function debounce(func, delay) {
 2   let timer
 3   return function (...args) {//我們調用一個函數,他會返回一個參數;我們拿到這個參數;
 4     if (timer) {
 5       clearTimeout(timer)
 6     }
 7     timer = setTimeout(() => {//定義延時函數;
 8       console.log('33333333333333333333333333333333333333節流函數冊數')
 9       console.log(this)
10       func.apply(this, args)//箭頭函數中的this指向符集作用域;對象中有屬性,方法,但並沒有this
11     }, delay)
12   }
13 }
14 
15 // 節流函數的原理
16 // 我們對某個函數進行節流,他會返回一個新的函數,新的函數會延遲執行我們要節流的這個函數;我們返回的函數反復被調用,不會總是觸發我們的func函數;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM