12 lines
286 B
JavaScript
12 lines
286 B
JavaScript
import { deepEqual } from "fast-equals";
|
|
import { useRef } from "react";
|
|
|
|
export default function useShallowMemo(fn, deps) {
|
|
const ref = useRef();
|
|
|
|
if (!ref.current || !deepEqual(ref.current.deps, deps)) {
|
|
ref.current = { value: fn(), deps };
|
|
}
|
|
|
|
return ref.current.value;
|
|
}
|