Server fetch default; Promise.all vs streaming — real choice; client fetch for post-hydration interaction.
Разбор
- Server fetching default и правильный — colocated, secure, cacheable, no client waterfall. Client только post-hydration interaction data.
Promise.all vs streaming — choice. Promise.all blocks until all (page useless without all). Streaming + Suspense — fast parts immediately, slow fill in (better perceived perf, layout shift risk).
- Когда НЕ server fetch: typeahead, optimistic lists — client + SWR/React Query (client cache, revalidation, mutation ergonomics).
Итог
Server first; parallel vs stream by UX needs; client for interaction-driven data.