当前位置:首页 > VUE

vue防抖函数实现

2026-02-21 12:01:55VUE

防抖函数的基本概念

防抖(Debounce)是一种优化高频触发事件的技术,确保函数在连续触发时只执行一次。常见场景包括输入框搜索、窗口大小调整等。

Vue中实现防抖的几种方式

使用Lodash库的debounce方法

安装Lodash后,可以直接使用其_.debounce方法:

import _ from 'lodash';

export default {
  methods: {
    handleInput: _.debounce(function() {
      // 实际逻辑代码
      console.log('Input debounced');
    }, 500)
  }
}

自定义防抖函数

若不依赖第三方库,可手动实现防抖:

export default {
  methods: {
    debounce(func, delay) {
      let timeoutId;
      return function(...args) {
        clearTimeout(timeoutId);
        timeoutId = setTimeout(() => {
          func.apply(this, args);
        }, delay);
      };
    },
    handleInput() {
      const debouncedFn = this.debounce(() => {
        console.log('Input debounced');
      }, 500);
      debouncedFn();
    }
  }
}

在Vue 3的setup语法中使用

通过refonMounted结合实现:

vue防抖函数实现

import { ref, onMounted } from 'vue';

export default {
  setup() {
    const debounce = (func, delay) => {
      let timeoutId;
      return (...args) => {
        clearTimeout(timeoutId);
        timeoutId = setTimeout(() => {
          func(...args);
        }, delay);
      };
    };

    const handleInput = debounce(() => {
      console.log('Input debounced');
    }, 500);

    return { handleInput };
  }
}

注意事项

  • 延迟时间:根据实际需求调整防抖延迟(如300-1000ms)。
  • this绑定:自定义防抖函数需通过.apply(this)确保上下文正确。
  • 立即执行:若需首次触发立即执行,可扩展防抖函数逻辑。

通过以上方法,可灵活应对Vue项目中需要防抖的场景。

标签: 函数防抖
分享给朋友:

相关文章

react如何调用函数

react如何调用函数

React 函数调用的方法 在 React 中调用函数可以通过多种方式实现,具体取决于函数的作用和调用时机。以下是常见的几种方法: 直接在组件中调用函数 函数可以在组件的 render 方法或其他…

react如何定义全局函数

react如何定义全局函数

定义全局函数的几种方法 在React中定义全局函数可以通过多种方式实现,以下是常见的几种方法: 使用全局变量挂载 将函数直接挂载到window对象上,使其成为全局可访问的函数。这种方式简单直接,但…

react如何刷新函数组件

react如何刷新函数组件

刷新函数组件的方法 在React中,函数组件的刷新通常通过状态更新或外部触发来实现。以下是几种常见的方法: 使用useState触发重新渲染 通过更新状态变量强制组件重新渲染。React会在状态变化…

react如何让函数组件缓存

react如何让函数组件缓存

缓存函数组件的常用方法 在React中,函数组件本身是无状态的,但可以通过以下方式实现类似类组件的缓存或优化效果: 使用React.memo进行浅比较缓存 React.memo是一个高阶组件,它会记…

react函数组件如何销毁事件

react函数组件如何销毁事件

在 React 函数组件中销毁事件 React 函数组件中需要手动销毁事件监听或定时器,以避免内存泄漏和性能问题。以下是几种常见情况的处理方法: 使用 useEffect 清理副作用 在函数组件中,…

react函数组件如何传参

react函数组件如何传参

传递参数的方式 React函数组件可以通过props传递参数。父组件在调用子组件时,通过属性名传递数据,子组件通过函数的第一个参数(通常命名为props)接收。 父组件传递参数示例: functi…