React5 min read

React Performance - useMemo

Optimize performance by memoizing expensive calculations with useMemo.

Sarah Johnson
December 20, 2025
0.0k0

useMemo caches expensive calculations to improve performance.

Problem - Expensive Calculation

```javascript function App() { const [count, setCount] = useState(0); const [input, setInput] = useState('');

// Runs on every render! const expensiveResult = calculateExpensive(count);

return <div>{expensiveResult}</div>; } ```

Solution - useMemo

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

function App() { const [count, setCount] = useState(0); const [input, setInput] = useState('');

const expensiveResult = useMemo(() => { return calculateExpensive(count); }, [count]); // Only recalculates when count changes

return <div>{expensiveResult}</div>; } ```

Filtering Example

```javascript function UserList({ users }) { const [search, setSearch] = useState('');

const filteredUsers = useMemo(() => { return users.filter(user => user.name.toLowerCase().includes(search.toLowerCase()) ); }, [users, search]);

return ( <div> <input value={search} onChange={e => setSearch(e.target.value)} /> {filteredUsers.map(user => <p key={user.id}>{user.name}</p>)} </div> ); } ```

Remember

- Use for expensive calculations - Specify dependencies - Don't overuse (has overhead)

> Next: Learn useCallback!

#React#Performance#useMemo#Intermediate