React Hooks Patterns/Basic custom hook

Extract reusable stateful logic into a function.

Section: Custom Hook Patterns

Basic custom hook

tsx
tsx
function useToggle(initial = false) {
  const [value, setValue] = useState(initial);
  const toggle = useCallback(() => setValue(v => !v), []);
  return [value, toggle] as const;
}
Explanation

Custom hooks let you share logic without changing component hierarchies.

Learn the surrounding workflow

Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.

Related commands

Same sheet · prioritizing Custom Hook Patterns
Custom hook with options object
Prefer options objects for extensible APIs.
OpenIn sheettsxsame section
Return object from a custom hook
Use named returns for richer APIs.
OpenIn sheettsxsame section
Track previous value
Store the previous render’s value.
OpenIn sheettsx3 tag match
Persist state to localStorage
Sync component state with localStorage.
OpenIn sheettsx3 tag match
Respond to media queries
Expose a boolean that tracks a CSS media query.
OpenIn sheettsx3 tag match
Expose derived async status
Return a status object from custom data hooks.
OpenIn sheettsx3 tag match