欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue之input輸入框防抖debounce函數(shù)的使用方式

 更新時間:2023年11月17日 10:59:32   作者:如果會御劍  
這篇文章主要介紹了vue之input輸入框防抖debounce函數(shù)的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

方法一

這種方式很簡單,但是能實現(xiàn)一樣的功能。

<template>
    <div>
        <input class="inputBox" type="text" placeholder="搜索項目名稱" v-model="searchValue" @keyup.enter="searchBtn" @input="searchBtn">
    </div>
</template>
<script>
let timers = null;
export default{
 data(){
  return{
    searchValue:''
  }
 }
methods:{
 searchBtn(){
  clearTimeout(timers)
  timers = setTimeout(() => {
   this.getOfferList()//需要防抖的函數(shù)
  }, 500);
 },
 }
}
</script>

方法二

這個方法是vue官網(wǎng)上的做法。

計算屬性和偵聽器 — Vue.js

<template>
    <div>
        <input class="inputBox" type="text" placeholder="搜索項目名稱" v-model="searchValue">
    </div>
<template>
<script>
export default{
 data(){
  return{
    searchValue:''
  }
 }
//監(jiān)聽input輸入值變化
watch:{
  searchValue:function(){
    this.debouncedGetAnswer();
  }
},
created(){
  this.debouncedGetAnswer = this.debounce(this.getOfferList, 500);
  //this.getOfferList是你查詢數(shù)據(jù)的函數(shù),也就是需要防抖的函數(shù)
},
methods:{
//防抖
 debounce(fn, delay = 500){
      let timer = null;
      return function() {
        if (timer) {
          clearTimeout(timer)
        }
        timer = setTimeout(() => {
          fn.apply(this, arguments)
          timer = null
        }, delay)
      }
    }
}
</script>

方法三

1.封裝一個模塊,引入即可,在utils新建一個js文件,名稱隨便

<template>
    <div>
        <input class="inputBox" type="text" placeholder="搜索項目名稱" v-model="searchValue">
    </div>
<template>
<script>
export default{
 data(){
  return{
    searchValue:''
  }
 }
//監(jiān)聽input輸入值變化
watch:{
  searchValue:function(){
    this.debouncedGetAnswer();
  }
},
created(){
  this.debouncedGetAnswer = this.debounce(this.getOfferList, 500);
  //this.getOfferList是你查詢數(shù)據(jù)的函數(shù),也就是需要防抖的函數(shù)
},
methods:{
//防抖
 debounce(fn, delay = 500){
      let timer = null;
      return function() {
        if (timer) {
          clearTimeout(timer)
        }
        timer = setTimeout(() => {
          fn.apply(this, arguments)
          timer = null
        }, delay)
      }
    }
}
</script>

2.在需要的vue文件引入即可使用

import { _throttle, _debounce } from '@/utils/throttle'

3.在vue文件的使用方法

// 監(jiān)聽搜索框內(nèi)容的變化,等輸入完成才會執(zhí)行搜索函數(shù)=>即防抖
watch: {
    searchValue: _debounce(function() {
      this.page = 1
      this.getJobFairList()
    })
  },
 
 
// 搜索,短時間內(nèi)連續(xù)點擊搜索按鈕只執(zhí)行一次搜索函數(shù)=>即節(jié)流
searchBtn: _throttle(function() {
  if (this.searchValue) {
    this.getJobFairList()
  }
}),

方法三是最近才更新的代碼,也是最新的代碼,建議使用方法三

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue項目中axios使用詳解

    vue項目中axios使用詳解

    這篇文章主要介紹了vue項目中axios使用方法以及原理介紹,如果你正巧學(xué)習(xí)這個知識點,那么參考下吧。
    2018-02-02
  • 詳解Vscode中使用Eslint終極配置大全

    詳解Vscode中使用Eslint終極配置大全

    這篇文章主要介紹了詳解Vscode中使用Eslint終極配置大全,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • vue完美實現(xiàn)el-table列寬自適應(yīng)

    vue完美實現(xiàn)el-table列寬自適應(yīng)

    這篇文章主要介紹了vue完美實現(xiàn)el-table列寬自適應(yīng),對vue感興趣的同學(xué),可以參考下
    2021-05-05
  • vue3實戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量

    vue3實戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量

    這篇文章主要給大家介紹了關(guān)于vue3實戰(zhàn)教程之a(chǎn)xios的封裝和環(huán)境變量的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-02-02
  • vue全屏事件開發(fā)詳解

    vue全屏事件開發(fā)詳解

    這篇文章主要為大家詳細(xì)介紹了vue全屏事件的開發(fā)過程,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Vue Element使用icon圖標(biāo)教程詳解(第三方)

    Vue Element使用icon圖標(biāo)教程詳解(第三方)

    element-ui自帶的圖標(biāo)庫不夠全,還是需要需要引入第三方icon。下面小編給大家?guī)砹薞ue Element使用icon圖標(biāo)教程,感興趣的朋友一起看看吧
    2018-02-02
  • 使用Vuex實現(xiàn)一個筆記應(yīng)用的方法

    使用Vuex實現(xiàn)一個筆記應(yīng)用的方法

    這篇文章主要介紹了使用Vuex實現(xiàn)一個筆記應(yīng)用的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • vue3?ref實現(xiàn)響應(yīng)式的方法

    vue3?ref實現(xiàn)響應(yīng)式的方法

    這篇文章主要介紹了vue3的ref是如何實現(xiàn)響應(yīng)式的,我們講了ref是如何實現(xiàn)響應(yīng)式的,主要分為兩種情況:ref接收的是number這種原始類型、ref接收的是對象這種非原始類型,需要的朋友可以參考下
    2024-07-07
  • vue學(xué)習(xí)筆記之指令v-text && v-html && v-bind詳解

    vue學(xué)習(xí)筆記之指令v-text && v-html && v-bind詳解

    這篇文章主要介紹了vue學(xué)習(xí)筆記之指令v-text && v-html && v-bind詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Vue如何使用cdn加載資源加快打包速度

    Vue如何使用cdn加載資源加快打包速度

    外部的庫文件,可以使用CDN資源,或者別的服務(wù)器資源等,下面這篇文章主要給大家介紹了關(guān)于Vue如何使用cdn加載資源加快打包速度的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05

最新評論