Вступить в клуб →
средняявопросNext.js и рендеринг: SSR, SSG, гидратация

После добавления "use client" в корневой layout бандл вырос втрое

Разработчику понадобился контекст темы во всём приложении, и он добавил "use client" в начало app/layout.jsx, где объявлены шапка, подвал и провайдеры. Клиентский JS на всех страницах вырос втрое, серверные запросы к базе в шапке перестали работать.

Как правильно подключить клиентский провайдер?

  • Вынести провайдер в отдельный клиентский компонент и оборачивать им children в серверном layout
  • Оставить "use client" в layout, а шапку сделать ленивой
  • Отказаться от контекста и передавать тему пропсами через все компоненты
  • Добавить "use server" в каждый компонент, которому нужна база

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела