use-memoized-fn
shadcn-hooks/use-memoized-fnFreeHook
A hook to declare a memoized function
Install it
npx shadcn@latest add https://shadcn-hooks.com/r/use-memoized-fn.jsonSource
1import { useMemo, useRef } from 'react'23type noop = (this: any, ...args: any[]) => any45type PickFunction<T extends noop> = (6 this: ThisParameterType<T>,7 ...args: Parameters<T>8) => ReturnType<T>910export function useMemoizedFn<T extends noop>(fn: T) {11 const fnRef = useRef<T>(fn)1213 // why not write `fnRef.current = fn`?14 // https://github.com/alibaba/hooks/issues/72815 fnRef.current = useMemo<T>(() => fn, [fn])1617 const memoizedFn = useRef<PickFunction<T>>(undefined)1819 if (!memoizedFn.current) {20 memoizedFn.current = function (this, ...args) {21 return fnRef.current.apply(this, args)22 }23 }2425 return memoizedFn.current26}
Files it writes
More from shadcn-hooks
All 58 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| use-active-elementuse-active-element | shadcn-hooks | Hooks | Free | no deps | |
| use-batteryuse-battery | shadcn-hooks | Hooks | Free | no deps | |
| use-booleanuse-boolean | shadcn-hooks | Hooks | Free | no deps | |
| use-click-any-whereuse-click-any-where | shadcn-hooks | Hooks | Free | no deps | |
| use-click-awayuse-click-away | shadcn-hooks | Hooks | Free | no deps | |
| use-clipboarduse-clipboard | shadcn-hooks | Hooks | Free | no deps | |
| use-controllable-valueuse-controllable-value | shadcn-hooks | Hooks | Free | 1 dep | |
| use-counteruse-counter | shadcn-hooks | Hooks | Free | no deps |
