import { ref, unref, Ref } from "vue"; /** * 渐变数字 * @param initNum 初始值 * @param stepCount 渐变花费帧数 * @returns [Ref, (v: number) => void] */ const useGradualNumber = (initNum: number, stepCount = 30): [Ref, (v: number) => void] => { const refNum = ref(initNum); const setNumber = (v: number) => { refNum.value = v; // let old = unref(refNum); // const step = Math.abs((v - old) / stepCount); // const increase = () => { // if (old < v) { // old = Math.round(old + step < v ? old + step : v); // refNum.value = old; // requestAnimationFrame(increase); // } else if (old > v) { // old = Math.round(old - step > v ? old - step : v); // refNum.value = old; // requestAnimationFrame(increase); // } // }; // increase(); }; return [refNum, setNumber]; }; export default useGradualNumber;