React4 min read

React Performance - useCallback

Prevent unnecessary re-renders by memoizing functions with useCallback.

Sarah Johnson
December 20, 2025
0.0k0

useCallback memoizes functions to prevent unnecessary child re-renders.

Problem

```javascript function Parent() { const [count, setCount] = useState(0);

// New function on every render const handleClick = () => { console.log('Clicked'); };

return <Child onClick={handleClick} />; } ```

Solution

```javascript import { useCallback } from 'react';

function Parent() { const [count, setCount] = useState(0);

const handleClick = useCallback(() => { console.log('Clicked'); }, []); // Function created once

return <Child onClick={handleClick} />; } ```

With Dependencies

```javascript function Parent() { const [userId, setUserId] = useState(1);

const fetchUser = useCallback(() => { fetch(`/api/users/${userId}`); }, [userId]); // Recreates when userId changes

return <Child onFetch={fetchUser} />; } ```

Remember

- Use with React.memo on child - Specify dependencies - Prevents child re-renders

> Next: Learn React.memo!

#React#Performance#useCallback#Intermediate