React 19 cache() memoizes values per request (server components only).
Code:
1import { cache } from "react";23// Cache database calls4const getUser = cache(async (id: string) => {5 const response = await fetch(`/api/users/${id}`);6 return response.json();7});89// Server Component10async function UserPage({ params }) {11 // Both calls use same cache within request12 const user = await getUser(params.id);13 const profile = await getUser(params.id); // cached!1415 return (16 <div>17 <h1>{user.name}</h1>18 <p>{profile.bio}</p>19 </div>20 );21}
How it works:
Benefits:
vs useMemo:
vs useEffect: