intermediate

Data fetching на сервере

Fetch рядом с источником данных, контролируйте кэш, избегайте waterfalls и держите request-only детали на сервере.

Fetch рядом с источником данных в Server Components или route handlers. `fetch` с опциями кэша Next.js (`cache`, `next.revalidate`, `next.tags`) или dynamic routes, когда чтение per-request.

Параллелизуйте независимые запросы через `Promise.all`, чтобы избежать waterfalls. Request memoization дедуплицирует одинаковые fetch в одном render pass.

					export default async function Page() {
  const [user, posts] = await Promise.all([getUser(), getPosts()]);
  return <Feed user={user} posts={posts} />;
}
				

На интервью: дефолты кэша, когда `no-store`, и связь tags с revalidation.

Типовые ошибки: последовательные await для несвязанных данных, кэш персонализированных ответов, client refetch дублирует server work.

Компромисс: агрессивный кэш против корректности auth-scoped данных.

Чеклист:

  • Параллельный server fetch.
  • cache или dynamic по чувствительности данных.
  • Теги кэша, связанные с мутациями.
  • Request-only headers на сервере.