Как реализовать каждый тип рендеринга? (App Router, Next.js 15+)
СобеседованиеРендеринг
SSG: в app/ по умолчанию статично; используйте export const dynamic = 'force-static' при необходимости; export const revalidate = false; generateStaticParams для динамических сегментов; fetch без no-store.
ISR: export const revalidate = <SECONDS> в странице/сегменте; избегайте cache: 'no-store'; on-demand через revalidatePath('/path')/revalidateTag('tag') в серверных действий (Server Actions) или маршрутах.
SSR: export const dynamic = 'force-dynamic' или fetch(..., { cache: 'no-store' })/{ next: { revalidate: 0 } }; чтение cookies()/headers() делает сегмент динамическим; результат стримится RSC/HTML.
CSR: компоненты с 'use client', фетчи в браузере (useEffect/use) или next/dynamic(..., { ssr: false }) для отдельных виджетов; навигация next/link/useRouter.
PPR: статичный shell (layout, header, footer) + динамические секции под Suspense; серверные компоненты стримятся как RSC чанки; при необходимости комбинируйте с ISR/SSR на уровне поддеревьев.