lodash 的 節流 和 防抖


//節流:在規定的間隔時間范圍內不會重復觸發回調,只有大於這個時間間隔才會觸發回調,把頻繁觸發變為少量觸發(1)

在 node_modules有 lodash 可以直接引入使用 
// 全部引入lodash
import _ from 'lodash' (不推薦)
// 按需引入 lodash的節流方法(throttle)
import throttle from 'lodash/throttle' (推薦)

  methods: {
    // 開啟節流 不用使用 箭頭函數,有 this指向的問題
    changeIndex:throttle(function(index){
      this.activeIndex = index
    },100)
  },
};

產考官網的文檔使用
_.throttle(func, [wait=0], [options=])

    參數
    func (Function): 要節流的函數。
    [wait=0] (number): 需要節流的毫秒。
    [options=] (Object): 選項對象。
    [options.leading=true] (boolean): 指定調用在節流開始前。
    [options.trailing=true] (boolean): 指定調用在節流結束后。
    返回
    (Function): 返回節流的函數。

節流(2)

  // 導包
  npm i lodash 
  // 全部引入lodash
  import _ from 'lodash' (不推薦)
  // 按需引入 lodash的節流方法(throttle)
  import debounce from 'lodash/throttle' (推薦)
  // 在  wacth中使用
    watch: {
      //屬性名:要監視的數據的名稱
      searchValue: {
        immediate: true,
        handler:
        // 防抖
          debounce(async function () {
            const { data } = await getSearchSuggestions(this.searchValue)
            this.suggestions = data.data.options
          }, 1000)
      }
    },

// 防抖:前面的所有的觸發都被取消,最后一次執行在規定的時間之后才會觸發,也就是說如果連續快速的觸發·只會執行一次



免責聲明!

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



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