# `useRafLoop` This hook call given function within the RAF loop without re-rendering parent component. Loop stops automatically on component unmount. Additionally hook provides methods to start/stop loop and check current state. ## Usage ```jsx import * as React from 'react'; import { useRafLoop, useUpdate } from 'react-use'; const Demo = () => { const [ticks, setTicks] = React.useState(0); const [lastCall, setLastCall] = React.useState(0); const update = useUpdate(); const [loopStop, loopStart, isActive] = useRafLoop((time) => { setTicks(ticks => ticks + 1); setLastCall(time); }); return (
RAF triggered: {ticks} (times)
Last high res timestamp: {lastCall}

); }; ``` ## Reference ```ts const [stopLoop, startLoop, isActive] = useRafLoop(callback: FrameRequestCallback, initiallyActive = true); ``` * **`callback`**_: `(time: number)=>void`_ — function to call each RAF tick. * **`time`**_: `number`_ — DOMHighResTimeStamp, which indicates the current time (based on the number of milliseconds since time origin). * **`initiallyActive`**_: `boolean`_ — whether loop should be started at initial render. * Return * **`stopLoop`**_: `()=>void`_ — stop loop if it is active. * **`startLoop`**_: `()=>void`_ — start loop if it was inactive. * **`isActive`**_: `()=>boolean`_ — _true_ if loop is active.