一、防抖
定义:频繁操作防止抖动,在操作后 n 秒内不操作,才触发事件,若继续操作,则重新计时

场景:输入框输入  缩放resize
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)
    }
}
 

Logo

前往低代码交流专区

更多推荐