当前位置:首页 > 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结合实现:

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项目中需要防抖的场景。

vue防抖函数实现

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

相关文章

vue实现异步函数

vue实现异步函数

Vue 中实现异步函数的几种方法 使用 async/await 在 Vue 方法或生命周期钩子中可以直接使用 async/await 语法处理异步操作。这种方式代码更清晰,易于理解。 method…

vue如何实现防抖

vue如何实现防抖

Vue 防抖的实现方法 在Vue中实现防抖(debounce)可以通过以下几种方式,根据不同的使用场景选择合适的方法。 使用 Lodash 的 debounce 函数 Lodash 是一个流行的…

vue项目实现防抖

vue项目实现防抖

Vue 项目中实现防抖的方法 防抖(Debounce)是一种限制函数频繁调用的技术,确保函数在最后一次调用后的一段时间内不再被触发。以下是几种在 Vue 项目中实现防抖的方法: 使用 Lodash…

vue中实现节流函数

vue中实现节流函数

使用 Lodash 的 _.throttle 方法 安装 Lodash 并导入 throttle 方法: npm install lodash 在 Vue 组件中使用: import { th…

react函数组件如何混合

react函数组件如何混合

混合 React 函数组件的方法 在 React 中,函数组件可以通过组合、高阶组件(HOC)、自定义 Hook 或 Render Props 等方式实现混合功能。以下是几种常见的方法: 使用自定…

react函数组件如何更新

react函数组件如何更新

React 函数组件更新方法 使用 useState Hook 通过 useState Hook 可以定义组件的状态,并触发重新渲染。useState 返回一个状态值和一个更新状态的函数。调用更新函数…