zent
Version:
一套前端设计语言和基于React的实现
17 lines (16 loc) • 525 B
JavaScript
import { useRef, useCallback, useEffect } from 'react';
export function useAnimationFramed(callback) {
var callbackRef = useRef(callback);
var handleRef = useRef(null);
useEffect(function () {
callbackRef.current = callback;
}, [callback]);
return useCallback(function () {
if (!handleRef.current) {
handleRef.current = requestAnimationFrame(function () {
handleRef.current = null;
callbackRef.current();
});
}
}, []);
}