Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: React Server Components, client components, server side rendering, hydration

Вы работали с React Server Components? Какие есть ограничения по сравнению с клиентскими компонентами?

Проверяет понимание React Server Components, их ограничений и отличий от клиентских компонентов для оценки опыта работы с современным React.

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

React Server Components (RSC) выполняются на сервере и отправляют готовый HTML клиенту, что уменьшает размер бандла и улучшает производительность. В отличие от клиентских компонентов, они не имеют доступа к хукам, событиям, состоянию и эффектам. RSC не могут использовать браузерные API и не поддерживают интерактивность. Клиентские компоненты, напротив, работают в браузере и могут использовать все возможности React, но требуют загрузки JavaScript.

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

Что такое React Server Components?

React Server Components (RSC) — это компоненты, которые выполняются исключительно на сервере во время рендеринга. Они отправляют клиенту уже готовый HTML, без необходимости загружать и выполнять JavaScript для этих компонентов. Это позволяет значительно уменьшить размер бандла и ускорить загрузку страницы, особенно для статического или редко изменяющегося контента.

Ограничения по сравнению с клиентскими компонентами

Основные ограничения RSC связаны с тем, что они не имеют доступа к среде браузера. Вот ключевые различия:

  • Нет хуков состояния и эффектов: RSC не могут использовать useState, useEffect, useReducer и другие хуки, которые зависят от клиентского состояния или жизненного цикла.
  • Нет обработчиков событий: Нельзя добавить onClick, onChange и другие события, так как они требуют JavaScript на клиенте.
  • Нет доступа к браузерным API: RSC не могут использовать window, document, localStorage и другие API.
  • Не поддерживают интерактивность: RSC предназначены только для рендеринга статического контента. Для интерактивности нужно использовать клиентские компоненты.
  • Не могут быть асинхронными в классическом смысле: Хотя RSC могут быть асинхронными (например, для загрузки данных), они не поддерживают async/await в том же виде, что и клиентские компоненты.

Пример кода

Пример серверного компонента, который загружает данные и рендерит их:

// ServerComponent.jsx (выполняется на сервере)
import { getPosts } from './api';

export default async function ServerComponent() {
  const posts = await getPosts();
  return (
    
      {posts.map(post => (
        {post.title}
      ))}
    
  );
}

Пример клиентского компонента с интерактивностью:

// ClientComponent.jsx (выполняется в браузере)
'use client';
import { useState } from 'react';

export default function ClientComponent() {
  const [count, setCount] = useState(0);
  return (
     setCount(count + 1)}>
      Clicked {count} times
    
  );
}

Вывод

React Server Components полезны для оптимизации производительности за счет уменьшения объема JavaScript, но их следует применять только для статического или серверного контента. Для интерактивных элементов обязательно используйте клиентские компоненты с директивой 'use client'.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • JavaScript

    JavaScript

  • React

    React

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

#React Server Components

#client components

#server side rendering

#hydration

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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