Урок 12

Итоги курса

Курс о данных и кешировании в Next.js.

Что ты узнал

  • Загрузка данных — async/await в Server Components
  • Кеширование fetch — cache, revalidate, теги
  • Static Generation и ISR — SSG, ISR, SSR
  • Server Actions — мутации без API
  • Работа с БД — Prisma и Drizzle
  • Streaming и Suspense — частичная загрузка
  • Server Actions продвинуто — useOptimistic, bind, валидация
  • Route Handlers продвинуто — динамика, CORS, стриминг, webhooks
  • Формы — useActionState, useFormStatus, файлы
  • Практика — полный CRUD

Ключевые идеи

Кеш fetch по умолчанию. Управляй через cache, revalidate, теги.

ISR — комбинация SSG и динамики. Статика + периодическая регенерация.

Server Actions для мутаций. Проще, чем API-роуты.

Прямой доступ к БД. Не нужен API-слой внутри приложения.

Streaming для UX. Пользователь видит части страницы.

revalidateTag и revalidatePath. После мутаций обновляй кеш.

Всегда проверяй права. Server Actions — публичные эндпоинты.

Частые ошибки

  • Забыть revalidatePath после мутации
  • Использовать no-store там, где нужен ISR
  • Не проверять права в Server Actions
  • Делать последовательные запросы вместо Promise.all
  • Не использовать Suspense для медленных блоков
  • Создавать новый PrismaClient на каждый запрос
  • Забыть dynamicParams при generateStaticParams
  • Использовать API-роуты для внутренней загрузки

Что дальше

  • Server Components глубоко — RSC payload
  • TanStack Query — клиентский кеш
  • Auth.js — аутентификация
  • Vercel — деплой и edge
  • Тестирование — Playwright, Vitest
  • Мониторинг — Sentry, Vercel Analytics

Полезные ссылки

  • Next.js Data Fetching: nextjs.org/docs/app/building-your-application/data-fetching
  • Server Actions: nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations
  • Caching: nextjs.org/docs/app/building-your-application/caching
  • Prisma: prisma.io/docs
  • Drizzle: orm.drizzle.team

Заключение

Данные и кеширование — сердце Next.js. Понимание того, когда кешировать, как инвалидировать и где использовать Server Actions, отличает production-приложение от учебного. Правила: кешируй осознанно, инвалидируй после мутаций, проверяй права, используй Suspense, прямой доступ к БД.