就是,如果我们一直连续点击一个按钮,如果不加防抖,他会一直发送请求,这是没有不要且浪费性能的,而且如果是添加请求,你设定的单位时间内只执行一次,会避免一些重复发送请求的情况。
1.新建一个.ts文件
import { ref } from 'vue';
export const useDebounce = (fn: Function, delay: number) => {
let timer: ReturnType<typeof setTimeout>;
return (...args: any[]) => {
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
fn(...args);
}, delay);
};
};
然后在需要使用的页面里引入它
import {useDebounce} from '@/tools/debounce'
const search =useDebounce( () => {
pagination.value.current = 1;
init(searchParams.value);
},500);