raf-handler
Version:
Use for centralize request animation frame
105 lines (69 loc) • 1.97 kB
Markdown
Simple small script to centralize request animation frame.
[](https://github.com/raf-handler/)
```sh
npm i raf-handler
```
```js
import rAF, { subscribeUpdate, unsubscribeUpdate } from "raf-handler";
rAF({ fps: 60 } /* default and optional */); // start animationFrameRequest
export default () => {
const update = (timestamp) => console.log(timestamp);
subscribeUpdate(update); // to add your function in a rAF array
unsubscribeUpdate(update); // to remove your function from a rAF array
};
```
```js
import rAF from "raf-handler";
export default () => {
const update = (timestamp) => console.log(timestamp);
const ticker = rAF();
ticker.add(update); // to add your function in a rAF array
ticker.remove(update); // to remove your function from a rAF array
};
```
```js
import { useMemo, useCallback, useEffect } from "react";
import rAF, { subscribeUpdate, unsubscribeUpdate } from "raf-handler";
export default () => {
useMemo(rAF, []); // autoinit only one time
const update = useCallback((timestamp) => {
console.log(timestamp);
}, []);
useEffect(() => {
subscribeUpdate(update); // add your function
return () => {
unsubscribeUpdate(update); // remove when unmount
};
}, []);
};
```
_Use with an external rAF_
```js
import { subscribeUpdate, update as updateRAF } from "raf-handler";
export default () => {
const update = (timestamp) => console.log(timestamp);
const initUpdate = (timestamp) => {
updateRAF(timestamp);
id.current = window.requestAnimationFrame(initUpdate);
};
subscribeUpdate(update);
initUpdate();
};
```
_Reset all rAF function_
```js
import { resetUpdate } from "raf-handler";
resetUpdate();
```
```sh
npm run build
```
MIT © [William Manco](mailto:wmanco88@gmail.com)