" />

最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue中使用防抖與節(jié)流的方法

 更新時間:2022年01月18日 10:42:00   作者:丿小破孩灬  
這篇文章主要為大家介紹了Vue中使用防抖與節(jié)流的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

何為防抖/節(jié)流

首先先說說何為防抖與節(jié)流

防抖(debounce)

防抖就是一段時間內(nèi)會多次觸發(fā)相同的事件,而我們的目的卻只是想讓他們在不觸發(fā)的多久以后再執(zhí)行該事件,例如鼠標移動事件(mousemove)、輸入框變更事件(change)等等,這個時候我們就需要一個方法去控制他,一段時間內(nèi)沒執(zhí)行該事件后,執(zhí)行該事件,即為防抖

節(jié)流(throttle)

節(jié)流就是短時間內(nèi)會多次觸發(fā)相同的事件,而我們的目的卻只是想讓他們既定時間內(nèi)只觸發(fā)一次,例如滾輪事件(scroll)、鼠標點擊事件(click)等等,這個時候我們就需要一個方法去控制他,一段時間(0.5S/1S)之內(nèi)只能觸發(fā)一次事件,即為節(jié)流

防抖(debounce)

// 防抖
export default function debounce(fn, time) {
  time = time || 200
  // 定時器
  let timer = null
  return function(...args) {
    var _this = this
    if (timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(function() {
      timer = null
      fn.apply(_this, args)
    }, time)
  }
}

節(jié)流(throttle)

// 節(jié)流
export default function throttle(fn, time) {
  let timer = null
  time = time || 1000
  return function(...args) {
    if (timer) {
      return
    }
    const _this = this
    timer = setTimeout(() => {
      timer = null
    }, time)
    fn.apply(_this, args)
  }
}

頁面使用

直接就用click的點擊速度模擬觸發(fā)事件的頻率了

<el-button @click="clickDebounce">防抖</el-button>
<el-button @click="clickThrottle">節(jié)流</el-button>
//引用定義好的JS方法
import debounce from '@/utils/debounce'
import throttle from '@/utils/throttle'
methods: {
    clickDebounce: debounce((e) => {
      console.log(1)
    }, 1000),
    clickThrottle: throttle((e) => {
      console.log(2)
    }, 1000),
}

使用場景

使用場景根據(jù)業(yè)務需求可以有很多很多 簡單舉兩個例子

防抖(debounce)搜索框自動搜索的時候,可搜索下拉框遠程搜索的時候,用戶在沒輸入完的情況下,防抖可以節(jié)約請求資源。
鼠標移動的時候,鼠標停下來不動再執(zhí)行方法

節(jié)流(throttle)滾動頁面的時候

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!

相關文章

  • vue 計時器組件的實現(xiàn)代碼

    vue 計時器組件的實現(xiàn)代碼

    本篇文章主要介紹了vue 計時器組件的實現(xiàn)代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue.js2.0點擊獲取自己的屬性和jquery方法

    vue.js2.0點擊獲取自己的屬性和jquery方法

    下面小編就為大家分享一篇vue.js2.0點擊獲取自己的屬性和jquery方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • Vue項目全局配置頁面緩存之按需讀取緩存的實現(xiàn)詳解

    Vue項目全局配置頁面緩存之按需讀取緩存的實現(xiàn)詳解

    這篇文章主要給大家介紹了關于Vue項目全局配置頁面緩存之實現(xiàn)按需讀取緩存的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起看看吧
    2018-08-08
  • vue2.x版本中computed和watch的使用及關聯(lián)和區(qū)別

    vue2.x版本中computed和watch的使用及關聯(lián)和區(qū)別

    這篇文章主要介紹了vue2.x版本中computed和watch的使用及關聯(lián)和區(qū)別,文章圍繞主題展開詳細的內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-07-07
  • web面試MVC與MVVM區(qū)別及Vue為什么不完全遵守MVVM解答

    web面試MVC與MVVM區(qū)別及Vue為什么不完全遵守MVVM解答

    這篇文章主要介紹了web面試中常問問題,MVC與MVVM區(qū)別以及Vue為什么不完全遵守MVVM的難點解答,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • vue中引入mxGraph的步驟詳解

    vue中引入mxGraph的步驟詳解

    本文分步驟給大家介紹了vue中引入mxGraph的方法,非常不錯,給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • 使用vscode格式化文檔無效的解決辦法(vue代碼格式化文檔無效)

    使用vscode格式化文檔無效的解決辦法(vue代碼格式化文檔無效)

    這篇文章主要給大家介紹了關于使用vscode格式化文檔無效的解決辦法,也就是vue代碼格式化文檔無效,這是最近突然遇到的一個問題,這里給大家介紹一下解決的辦法,需要的朋友可以參考下
    2023-08-08
  • Vue如何循環(huán)提取對象數(shù)組中的值

    Vue如何循環(huán)提取對象數(shù)組中的值

    這篇文章主要介紹了Vue如何循環(huán)提取對象數(shù)組中的值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • vue小圖標favicon不顯示的解決方案

    vue小圖標favicon不顯示的解決方案

    本篇文章主要介紹了vue小圖標favicon不顯示的解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • 結合el-upload組件實現(xiàn)大文件分片上傳功能

    結合el-upload組件實現(xiàn)大文件分片上傳功能

    Element UI的el-upload上傳組件相信各位小伙伴都已經(jīng)非常熟悉,最近接了一個新需求,要求在el-upload組件基礎上實現(xiàn)分片上傳功能,即小于等于5M文件正常上傳,大于5M文件切成5M每片上傳,那么這個功能怎么實現(xiàn)呢?一起看看吧
    2022-09-09

最新評論

商城县| 兴海县| 滦南县| 和田市| 万载县| 宁津县| 黄冈市| 湖南省| 义马市| 邵阳县| 开平市| 光山县| 阿荣旗| 无极县| 龙陵县| 张家界市| 尉犁县| 临泽县| 成武县| 颍上县| 缙云县| 包头市| 理塘县| 拜泉县| 游戏| 德江县| 京山县| 二连浩特市| 化隆| 舞阳县| 甘肃省| 沾化县| 独山县| 土默特右旗| 布拖县| 辽宁省| 怀来县| 宁远县| 普兰县| 太白县| 黔东|