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

vue中防抖和節(jié)流的使用方法

 更新時間:2021年08月05日 15:01:41   作者:楊柒柒柒呀  
防抖和節(jié)流是我們在開發(fā)過程中常用優(yōu)化性能的方式,可以減少不必要的計算,不浪費資源,只在適合的時候再進行觸發(fā)計算,這篇文章主要給大家介紹了關于vue中防抖和節(jié)流使用的相關資料,需要的朋友可以參考下

前言

在一個電影項目中,我想在電影的列表中,保存下拉的當前位置,防止你切換頁面后,再切換回當前的電影列表頁,他就又回到電影的第一條數據。

這時候,我不想每次只要滑動一點,就保存當前位置,我想隔一段時間,保存一次,這時候,就可以使用防抖和節(jié)流。

概念

說白了, 防抖節(jié)流就是使用定時器 來實現我們的目的。

防抖(debounce):

在事件被觸發(fā)n秒后再執(zhí)行回調,如果在這n秒內又被觸發(fā),則重新計時。

典型的案例就是輸入框搜索:輸入結束后n秒才進行搜索請求,n秒內又輸入的內容,則重新計時。

節(jié)流(throttle):

規(guī)定在一個單位時間內,只能觸發(fā)一次函數,如果這個單位時間內觸發(fā)多次函數,只有一次生效。

典型的案例就是鼠標不斷點擊觸發(fā),規(guī)定在n秒內多次點擊只生效一次。

防抖

定義

頻繁操作防止抖動,在操作后 n 秒內不操作,才觸發(fā)事件,若繼續(xù)操作,則重新計時

使用場景

  • 輸入框輸入
  • 縮放resize

代碼

// utils.js
// immediate 是否開始立即執(zhí)行
function debounce(func, delay = 300, immediate = false) {
    let timer = null
    return function() {
        if (timer) {
            clearTimeout(timer)
        }
        if (immediate && !timer) {
            func.apply(this, arguments)
        }
        timer = setTimeout(() => {
         func.apply(this, arguments)
        }, delay)
    }
}

在vue中使用

方法一:寫在公共方法utils里引入

import { debounce } from 'utils'
methods: {
    appSearch:debounce(function(e.target.value){
        this.handleSearch(value)
    }, 1000),
    handleSearch(value) {
        console.log(value)
    }
}

方法二:寫在當前vue文件中

data: () => {
  return {
    debounceInput: () => {}
  }
},
methods: {
  showApp(value) {
    console.log('value', value)
  },
  debounce(func, delay = 300, immediate = false) {
    let timer = null
    return function() {
        if (timer) {
            clearTimeout(timer)
        }
        if (immediate && !timer) {
            func.apply(this, arguments)
        }
        timer = setTimeout(() => {
         func.apply(this, arguments)
        }, delay)
    }
  }
},
mounted() {
  this.debounceInput = this.debounce(this.showApp, 1000)      
},

節(jié)流

定義

頻繁操作稀釋函數執(zhí)行,頻繁操作時,每隔n秒才觸發(fā)一次

使用場景

  1. 鼠標點擊,mousedown,mousemove單位時間只執(zhí)行一次
  2. 滾動事件,懶加載、滾動加載、加載更多或監(jiān)聽滾動條位置
  3. 防止高頻點擊提交,防止表單重復提交

代碼

// utils.js
function throttle (func, delay = 300) {    
    let prev = 0
    return function() {
        let now = Date.now()
        if ((now - prev) >= delay) {
            func.apply(this, arguments)
            prev = Date.now()
        }
    }
}

在vue中使用

使用方法與防抖相同

總結

到此這篇關于vue中防抖和節(jié)流使用的文章就介紹到這了,更多相關vue防抖和節(jié)流使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解使用vue實現tab 切換操作

    詳解使用vue實現tab 切換操作

    這篇文章主要介紹了詳解使用vue實現tab操作,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • vue關閉eslint檢查的方式

    vue關閉eslint檢查的方式

    這篇文章主要介紹了vue關閉eslint檢查的方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vsCode安裝配置創(chuàng)建Vue3項目全過程

    vsCode安裝配置創(chuàng)建Vue3項目全過程

    本文介紹了如何在Windows系統(tǒng)上安裝和配置Vue.js開發(fā)環(huán)境,包括安裝VS Code、Node.js、Vue CLI以及創(chuàng)建和啟動一個Vue項目
    2025-01-01
  • Vue之修改數據頁面不更新的問題

    Vue之修改數據頁面不更新的問題

    這篇文章主要介紹了Vue之修改數據頁面不更新的問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Vue實現多個關鍵詞高亮顯示功能

    Vue實現多個關鍵詞高亮顯示功能

    在現代網頁開發(fā)中,常常需要實現高亮顯示關鍵詞的功能,這篇文章將探討如何通過?Vue.js?中的?highlightText來實現這一功能,感興趣的可以了解下
    2024-12-12
  • Vue和relation-graph庫打造高質量的關系圖應用程序

    Vue和relation-graph庫打造高質量的關系圖應用程序

    這篇文章主要介紹了Vue和relation-graph庫打造高質量的關系圖應用程序,在這篇文章中,我們深入探討了如何使用Vue和relation-graph高效打造關系圖,我們詳細介紹了數據準備、關系映射、點擊事件等關鍵步驟,需要的朋友可以參考下
    2023-09-09
  • Vue2.0/3.0雙向數據綁定的實現原理詳解

    Vue2.0/3.0雙向數據綁定的實現原理詳解

    這篇文章主要給大家介紹了關于Vue2.0/3.0雙向數據綁定的實現原理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • 一文搞懂VueJs中customRef函數使用

    一文搞懂VueJs中customRef函數使用

    這篇文章主要為大家介紹了VueJs中customRef函數使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決

    安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決

    這篇文章主要介紹了安裝vue無法運行、此系統(tǒng)無法運行腳本問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vue.js每天必學之方法與事件處理器

    Vue.js每天必學之方法與事件處理器

    Vue.js每天必學之方法與事件處理器,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評論

土默特左旗| 五指山市| 沙湾县| 清河县| 泸溪县| 吉林省| 沙雅县| 吉水县| 天津市| 临漳县| 凭祥市| 古浪县| 双峰县| 黔东| 交城县| 商河县| 湖北省| 肃北| 朝阳县| 长兴县| 阿图什市| 连云港市| 江陵县| 大冶市| 淮北市| 盐城市| 北京市| 千阳县| 桂阳县| 理塘县| 镇江市| 大英县| 香格里拉县| 青阳县| 宽甸| 恩平市| 临城县| 老河口市| 东平县| 海丰县| 河南省|