Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Next.js: nextjs, server components, limitations, hooks, state

Какие есть ограничения у серверных компонентов в Next.js? (Отсутствие состояния, хуков)

Вопрос проверяет понимание фундаментальных ограничений Server Components в Next.js, которые являются следствием их природы — выполнения на сервере, а не в браузере.

Короткий ответ

Серверные компоненты не могут использовать состояние (useState), эффекты (useEffect) и другие хуки жизненного цикла, потому что они рендерятся один раз на сервере и не "живут" в браузере. Они также не могут использовать браузерные API (например, window или document) и обработчики событий.

Длинный ответ

Server Components — это принципиально другой ментальная модель по сравнению с клиентскими компонентами. Их главная задача — рендерить некую статичную (или зависящую от данных) разметку.

Что НЕЛЬЗЯ использовать в Server Components:

  1. Хуки React:

    • useState, useReducer, useEffect, useContext (для состояния) и другие.

    • Причина: Они связаны с жизненным циклом компонента в браузере (монтирование, обновление, размонтирование), а серверный компонент рендерится один раз и не "обновляется".

  2. Браузерные API:

    • window, document, navigator, localStorage, etc.

    • Причина: Эти объекты существуют только в среде браузера, а серверный компонент выполняется в среде Node.js или Edge Runtime.

  3. Обработчики событий:

    • onClick, onChange и другие пропсы, ожидающие интерактивности.

    • Причина: События происходят в браузере, а серверный компонент уже отрендерен и отправлен.

Что МОЖНО и нужно делать в Server Components:

  • Получать данные напрямую из БД или API.

  • Работать с файловой системой (на сервере).

  • Доступ к серверным ресурсам безопасно (с использованием секретных ключей).

  • Рендерить большие компоненты, не увеличивая bundle-файл клиента.

Правильное разделение:

  • Используйте Server Components для всего, что не требует интерактивности (данные, макеты, статичный контент).

  • Используйте Client Components (помеченные 'use client') для всего интерактивного (формы, кнопки, состояние, анимации).

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Next.js

    Next.js

Ключевые слова

#nextjs

#server components

#limitations

#hooks

#state

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию