UNPKG

shelving

Version:

Toolkit for using data in JavaScript.

16 lines (15 loc) 499 B
import { useRef } from "react"; import { isArrayEqual } from "../util/equal.js"; import { getLazy } from "../util/lazy.js"; export function useLazy(value, ...args) { const _internals = (useRef(undefined).current ??= { value: getLazy(value, ...args), args, }); // Update `_internals` if `args` changes. if (!isArrayEqual(args, _internals.args)) { _internals.value = getLazy(value, ...args); _internals.args = args; } return _internals.value; }