React Hooks Cheatsheet

Complete reference for React hooks: state, effects, context, performance optimization.

HookDescriptionSyntaxExampleCategory
useState()Add state to functional componentconst [state, setState] = useState(initialValue)const [count, setCount] = useState(0)State
useEffect()Handle side effectsuseEffect(() => { ... }, [deps])useEffect(() => { document.title = "App" }, [])Side Effects
useContext()Access context valueconst value = useContext(ThemeContext)const { theme } = useContext(ThemeContext)Context
useReducer()Complex state managementconst [state, dispatch] = useReducer(reducer, init)const [state, dispatch] = useReducer(reducer, { count: 0 })State
useCallback()Memoize callback functionconst memoizedCallback = useCallback(callback, [deps])const handleClick = useCallback(() => { ... }, [count])Performance
useMemo()Memoize expensive computationconst value = useMemo(() => computation(), [deps])const sum = useMemo(() => array.reduce((a,b) => a+b), [array])Performance
useRef()Create mutable refconst ref = useRef(initialValue)const inputRef = useRef(null)Refs
useLayoutEffect()Like useEffect but synchronoususeLayoutEffect(() => { ... }, [deps])useLayoutEffect(() => { console.log("Layout") }, [])Side Effects
useImperativeHandle()Customize ref exposureuseImperativeHandle(ref, () => ({ ... }))useImperativeHandle(ref, () => ({ focus }))Refs
useDebugValue()Add label in React DevToolsuseDebugValue(value)useDebugValue(theme === "dark" ? "🌙" : "☀️")Custom