当前位置:首页 > VUE

vue防抖函数实现

2026-02-21 12:01:55VUE

防抖函数的基本概念

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

vue防抖函数实现

Vue中实现防抖的几种方式

使用Lodash库的debounce方法

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

vue防抖函数实现

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

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

相关文章

php 函数实现

php 函数实现

PHP 函数实现基础 PHP 函数的定义使用 function 关键字,后跟函数名和参数列表。函数名不区分大小写,但建议保持一致。 function functionName($param1, $p…

react如何使用函数

react如何使用函数

使用函数组件的基本语法 在React中,函数组件是通过JavaScript函数定义的组件。函数接收props作为参数,并返回React元素。 function Welcome(props) {…

react函数如何调用redux

react函数如何调用redux

在React函数组件中调用Redux 使用react-redux库提供的useSelector和useDispatch钩子函数,可以在函数组件中访问Redux状态和派发action。 安装必要依赖:…

react如何定义全局函数

react如何定义全局函数

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

react组建中如何调用函数

react组建中如何调用函数

在 React 组件中调用函数的方法 React 组件中调用函数的方式取决于函数的定义位置和作用域。以下是常见的几种方法: 在组件内部定义并调用函数 函数可以直接在组件内部定义,并通过事件或生命周期…

react如何控制函数组件更新

react如何控制函数组件更新

控制函数组件更新的方法 在React中,函数组件的更新通常由状态(state)或属性(props)的变化触发。以下是几种常见的控制函数组件更新的方法: 使用React.memo进行浅比较 React…