Files
vue-vben-admin/src/hooks/core/useDebouncedRef.ts
2020-11-23 23:24:13 +08:00

21 lines
431 B
TypeScript

import { customRef } from 'vue';
export function useDebouncedRef<T = any>(value: T, delay = 100) {
let timeout: TimeoutHandle;
return customRef((track, trigger) => {
return {
get() {
track();
return value;
},
set(newValue: T) {
clearTimeout(timeout);
timeout = setTimeout(() => {
value = newValue;
trigger();
}, delay);
},
};
});
}