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
function Parent() {
const [count, setCount] = useState(0);
// New function on every render
const handleClick = () => {
console.log('Clicked');
};
return <Child onClick={handleClick} />;
}
Solution
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
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