ant-design-vue/components/input-number/src/hooks/useFrame.ts

26 lines
433 B
TypeScript

import raf from '../../../_util/raf';
import { onBeforeUnmount, shallowRef } from 'vue';
/**
* Always trigger latest once when call multiple time
*/
export default () => {
const idRef = shallowRef(0);
const cleanUp = () => {
raf.cancel(idRef.value);
};
onBeforeUnmount(() => {
cleanUp();
});
return (callback: () => void) => {
cleanUp();
idRef.value = raf(() => {
callback();
});
};
};