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

Vue防抖與節(jié)流的使用介紹

 更新時(shí)間:2022年12月21日 14:41:43   作者:和世界不一樣,那就不一樣!  
防抖和節(jié)流的作用都是防止函數(shù)多次調(diào)用,下面這篇文章主要給大家介紹了關(guān)于vue函數(shù)防抖與節(jié)流的正確使用方法,需要的朋友可以參考下

概念

1. 防抖

防抖策略(debounce):是當(dāng)事件被觸發(fā)后,延遲n秒后再執(zhí)行回調(diào)函數(shù),如果在這n秒內(nèi)事件被再次觸發(fā),則重新計(jì)時(shí).

好處是:它能夠保證用戶在頻繁觸發(fā)某些事件的時(shí)候,不會(huì)頻繁的執(zhí)行回調(diào),只會(huì)被執(zhí)行一次.

防抖的概念:如果有人進(jìn)電梯(觸發(fā)事件),那電梯將在10秒鐘后出發(fā)(執(zhí)行事件監(jiān)聽(tīng)器),這時(shí)如果又有人進(jìn)電梯了(在10秒內(nèi)再次觸發(fā)該事件),我們又得等10秒再出發(fā)(重新計(jì)時(shí))。

防抖的應(yīng)用場(chǎng)景::

用戶在輸入框連續(xù)輸入一串字符時(shí),可以通過(guò)防抖策略,只在輸入完后,才執(zhí)行查詢的請(qǐng)求,這樣可以有效減少請(qǐng)求次數(shù),節(jié)約請(qǐng)求資源.

2. 節(jié)流策略

節(jié)流策略(throttle):,可以減少一段時(shí)間內(nèi)事件的觸發(fā)頻率.

節(jié)流閥的概念:

高鐵的衛(wèi)生間是否被占用,由紅綠燈控制,假設(shè)一個(gè)每個(gè)人上洗手間要五分鐘,則五分鐘之內(nèi)別人不可以使用,上一個(gè)使用完畢之后,將紅燈設(shè)置為綠燈,表示下一個(gè)人可以使用了.下一個(gè)人在使用洗手間時(shí)需要先判斷控制燈是否為綠色,來(lái)知曉洗手間是否可用.

–節(jié)流閥為空,表示可以執(zhí)行下一次操作,不為空,表示不能使用下次操作.

–當(dāng)前操作執(zhí)行完之后要將節(jié)流閥重置為空,表示可以執(zhí)行下次操作了.

–每次執(zhí)行操作之前,先判斷節(jié)流閥是否為空

節(jié)流策略的應(yīng)用場(chǎng)景:

1)鼠標(biāo)不斷觸發(fā)某事件時(shí),如點(diǎn)擊,只在單位事件內(nèi)觸發(fā)一次.

2)懶加載時(shí)要監(jiān)聽(tīng)計(jì)算滾動(dòng)條的位置,但不必要每次滑動(dòng)都觸發(fā),可以降低計(jì)算頻率,而不必要浪費(fèi)CPU資源.

Vue中的使用

項(xiàng)目中新建一個(gè)throttleDebounce.js文件

export default {
// 防抖
debounce: function (fn, t) {
    let delay = t || 500;
    let timer;
    return function () {
      let th = this;
      let args = arguments;
      if (timer) {
        clearTimeout(timer);
      }
      timer = setTimeout(function () {
        timer = null;
        fn.apply(th, args);
      }, delay);
    }
  },
  // 節(jié)流
  throttle: function (fn, t) {
    let last;
    let timer;
    let interval = t || 500;
    return function () {
      let th = this;
      let args = arguments;
      let now = +new Date();
      if (last && now - last < interval) {
        clearTimeout(timer);
        timer = setTimeout(function () {
          last = now;
          fn.apply(th, args);
        }, interval);
      } else {
        last = now;
        fn.apply(th, args);
      }
    }
  }
}

FileConvert.vue文件

引入

import throttleDebounce from '@/utils/throttleDebounce.js'
// convertRes  是el-button綁定的點(diǎn)擊事件
methods:{
convertRes: throttleDebounce.throttle(function() {
      //  需要節(jié)流的事件,我這里是接口的調(diào)取
      this.convertResFinal()  
    }, 500),
//  節(jié)流的事件
convertResFinal() {
      this.$refs['form'].validate(async valid => {
        if (valid) {
          this.hexBtnLoading = true
          const params = {
            arch: this.form.arch,
            addr: this.form.addr,
            hexdump: this.form.hexdump
          }
          try {
            const res = await getVexConvertRes(params)
            if (res.code === 200) {
              
            }
          } catch (error) {
          }
        }
      })
    },
}

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

相關(guān)文章

  • Vite處理html模板插件之vite-plugin-html插件使用

    Vite處理html模板插件之vite-plugin-html插件使用

    這篇文章主要給大家介紹了關(guān)于Vite處理html模板插件之vite-plugin-html插件使用的相關(guān)資料,Vite是一個(gè)現(xiàn)代化的前端構(gòu)建工具,而vite-plugin-html是Vite的一個(gè)插件,用于在構(gòu)建時(shí)自動(dòng)生成HTML文件,需要的朋友可以參考下
    2023-10-10
  • vuecli中chainWebpack的常用操作舉例

    vuecli中chainWebpack的常用操作舉例

    在項(xiàng)目開(kāi)發(fā)中我們難免碰到需要對(duì)webpack配置更改的情況,下面這篇文章主要給大家介紹了關(guān)于vuecli中chainWebpack的常用操作舉例,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • 快速解決 keep-alive 緩存組件中定時(shí)器干擾問(wèn)題

    快速解決 keep-alive 緩存組件中定時(shí)器干擾問(wèn)題

    文章介紹了在使用keep-alive緩存組件時(shí),如何在組件被緩存后清理定時(shí)器以避免干擾其他組件的邏輯,通過(guò)在deactivated鉤子中清理定時(shí)器,可以確保組件被緩存時(shí)不會(huì)繼續(xù)運(yùn)行定時(shí)器,感興趣的朋友一起看看吧
    2025-02-02
  • vue項(xiàng)目中mock.js的使用及基本用法

    vue項(xiàng)目中mock.js的使用及基本用法

    mockjs是用來(lái)模擬產(chǎn)生一些虛擬的數(shù)據(jù),可以讓前端在后端接口還沒(méi)有開(kāi)發(fā)出來(lái)時(shí)獨(dú)立開(kāi)發(fā)。這篇文章主要介紹了vue項(xiàng)目中mock.js的使用,需要的朋友可以參考下
    2019-05-05
  • vue 父組件通過(guò)v-model接收子組件的值的代碼

    vue 父組件通過(guò)v-model接收子組件的值的代碼

    這篇文章主要介紹了vue 父組件通過(guò)v-model接收子組件的值的代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • vue+iview使用樹(shù)形控件的具體使用

    vue+iview使用樹(shù)形控件的具體使用

    這篇文章主要介紹了vue+iview使用樹(shù)形控件的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 快速掌握Vue3.0中如何上手Vuex狀態(tài)管理

    快速掌握Vue3.0中如何上手Vuex狀態(tài)管理

    Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式,本文給大家分享Vue3.0中快速上手Vuex狀態(tài)管理的方式,本文通過(guò)實(shí)例代碼講解的很詳細(xì),對(duì)大家學(xué)習(xí)Vuex狀態(tài)管理相關(guān)知識(shí)有很大的幫助,感興趣的朋友一起學(xué)習(xí)吧
    2021-05-05
  • Vue組件tree實(shí)現(xiàn)樹(shù)形菜單

    Vue組件tree實(shí)現(xiàn)樹(shù)形菜單

    這篇文章主要為大家詳細(xì)介紹了Vue組件tree實(shí)現(xiàn)樹(shù)形菜單,小巧實(shí)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue如何設(shè)置描點(diǎn)跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面

    vue如何設(shè)置描點(diǎn)跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面

    這篇文章主要介紹了vue如何設(shè)置描點(diǎn)跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 如何為老vue項(xiàng)目添加vite支持詳解

    如何為老vue項(xiàng)目添加vite支持詳解

    Vite是一個(gè)開(kāi)發(fā)環(huán)境工具,旨在提高我們的開(kāi)發(fā)速度,下面這篇文章主要給大家介紹了關(guān)于如何為老vue項(xiàng)目添加vite支持的相關(guān)資料,需要的朋友可以參考下
    2021-09-09

最新評(píng)論

唐河县| 宁阳县| 田林县| 苗栗县| 辽宁省| 太康县| 兴安县| 库车县| 威宁| 宝山区| 铅山县| 云浮市| 黑水县| 万源市| 泗洪县| 宝应县| 盱眙县| 高邮市| 昂仁县| 肇庆市| 泰顺县| 平顺县| 车致| 盐池县| 元朗区| 九江市| 友谊县| 浦江县| 合江县| 垦利县| 都安| 丰顺县| 和林格尔县| 娄底市| 扬中市| 常宁市| 大宁县| 成都市| 永清县| 凭祥市| 红桥区|