Appearance
useRafFn
Call function on every requestAnimationFrame. With controls of pausing and resuming.
Demo
Usage
tsx
import { useRafFn } from '@reause/core'
import { useState } from 'react'
const [count, setCount] = useState(0)
const { pause, resume } = useRafFn(() => {
setCount(c => c + 1)
console.log(count + 1)
})Type Declarations
ts
export interface Pausable {
isActive: boolean;
pause: () => void;
resume: () => void;
}
export interface UseRafFnCallbackArguments {
delta: number;
timestamp: DOMHighResTimeStamp;
}
export interface UseRafFnOptions extends ConfigurableWindow {
immediate?: boolean;
fpsLimit?: number | null;
once?: boolean;
}
export interface UseRafFnReturn {
isActive: boolean;
pause: () => void;
resume: () => void;
}
export function useRafFn(fn: (args: UseRafFnCallbackArguments) => void, options?: UseRafFnOptions): UseRafFnReturn