useRaf
React动画钩子,强制组件在每个 reaquestAnimationFrame
上重新渲染,返回经过的时间百分比。
import {useRaf} from 'react-use';
const Demo = () => {
const elapsed = useRaf(5000, 1000);
return (
<div>
Elapsed: {elapsed}
</div>
);
};
useRaf(ms?: number, delay?: number): number;
ms
— milliseconds 保持重新渲染组件的时间, 默认为 1e12
.delay
— 延迟(以毫秒为单位),然后开始重新渲染组件, 默认为 0
.useSpring
React 动画钩子,根据弹簧动力学随时间更新单个数值。
import {useSpring} from 'react-use';
const Demo = () => {
const [target, setTarget] = useState(50);
const value = useSpring(target);
return (
<div>
{value}
<br />
<button onClick={() => setTarget(0)}>Set 0</button>
<button onClick={() => setTarget(100)}>Set 100</button>
</div>
);
};
const currentValue = useSpring(targetValue);
const currentValue = useSpring(targetValue, tension, friction);
useTimeout
在指定的毫秒数后返回 true
。
import { useTimeout } from 'react-use';
const Demo = () => {
const ready = useTimeout(2000);
return <div>Ready: {ready ? 'Yes' : 'No'}</div>;
};
useTween
React动画钩子,补间0到1之间的数字。
import {useTween} from 'react-use';
const Demo = () => {
const t = useTween();
return (
<div>
Tween: {t}
</div>
);
};
useTween(easing?: string, ms?: number, delay?: number): number
返回一个数字,该数字在动画结束时以0开始,以1结束。
easing
— 一个有效的 easing names, 默认为 inCirc
.ms
— 保持重新渲染组件的时间, 默认为 200
.delay
— 延迟(以毫秒为单位),然后开始重新渲染组件, 默认为 0
.useUpdate
React实用程序钩子,它返回一个强制组件在被调用时重新呈现的函数。
import {useUpdate} from 'react-use';
const Demo = () => {
const update = useUpdate();
return (
<>
<div>Time: {Date.now()}</div>
<button onClick={update}>Update</button>
</>
);
};