Skip to content

useRaf

手动调度一个下一帧执行的回调,并在重复调度或卸载时自动取消。

签名

ts
function useRaf(callback: FrameRequestCallback): {
    run: () => void;
    cancel: () => void;
};

基本用法

关键行为

  • run() 会取消上一次尚未执行的帧任务,再调度新的任务。
  • 回调会接收 requestAnimationFrame 传入的时间戳。
  • 回调变化时始终使用最新实现,组件卸载时会自动取消待执行任务。

注意事项

  • 非浏览器环境或缺少 requestAnimationFrame 时,run() 不会执行任何操作。