防抖

作用:

防抖的作用是:在事件被触发的n秒后执行回调,如果在这n秒内又被触发,则重新计时。

场景:

输入框中输入一个字,掉一次接口,搜索功能性能体验不好,加防抖

防抖

防抖

 

 

 防抖

 

 

 解决方案加防抖

方法一

防抖

 

 

 在methods中定义debounce

    debounce(fn, delay) {
      let timer = null
      return function () {
        const context = this
        const args = arguments

        if (timer) {
          clearTimeout(timer)
          timer = null
        }

        timer = setTimeout(() => {
          fn.apply(context, args)
        }, delay)
      }
    },

方法二 封装 debounce

export function debounce(fn, delay) {
  delay = delay || 1000; //默认1s后执行
  let timer = null;
  return function() {
    let context = this;
    let arg = arguments;
    if (timer) {
      clearTimeout(timer);
    }
    timer = setTimeout(() => {
      fn.apply(context, arg);
    }, delay);
  };
}

页面中引入

import {debounce} from "../../../../utils/index"

在使用(注意:外部引入函数不能直接在template中使用)

防抖

 

 使用

防抖

 

上一篇:2021-10-21


下一篇:uniapp按钮防抖防止重复提交