Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: React, component composition, props, children, reusability

Что такое композиция в React?

Вопрос проверяет понимание композиции компонентов в React, которая позволяет строить сложные интерфейсы из простых, переиспользуемых частей.

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

Композиция в React — это подход к построению пользовательских интерфейсов, при котором сложные компоненты создаются путем объединения более простых и специализированных. Вместо наследования React рекомендует использовать композицию, передавая данные и другие компоненты через props (включая специальный prop children). Это делает код более предсказуемым, переиспользуемым и простым для тестирования. Например, кнопка с иконкой может быть составлена из компонентов Button и Icon, а не создана как один монолитный компонент.

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

Композиция — это фундаментальный принцип React, который означает сборку пользовательского интерфейса из независимых, переиспользуемых компонентов, как из строительных блоков. Вместо создания огромных компонентов, которые делают всё, вы разбиваете UI на мелкие, управляемые части, а затем комбинируете их для получения нужного результата. Это противоположно наследованию, где вы могли бы расширять классы; React поощряет композицию через props.

Как работает композиция

Основные механизмы композиции в React:

  • Передача данных через props: Вы передаёте данные (строки, числа, массивы, объекты) от родительского компонента к дочернему, настраивая его поведение.
  • Передача React-элементов и компонентов через props: Вы можете передавать целые компоненты или JSX-элементы как props. Особенно важен специальный prop children, который позволяет вкладывать содержимое между открывающим и закрывающим тегами компонента.
  • Использование паттернов: Такие паттерны, как контейнеры и презентационные компоненты, или рендер-пропсы, также основаны на композиции.

Примеры композиции

Простейший пример — использование children:

function Card({ children }) {
  return (
    
      {children}
    
  );
}

function App() {
  return (
    
      Заголовок
      Какой-то текст внутри карточки.
    
  );
}

Компонент Card ничего не знает о своём содержимом — он просто рендерит переданные children. Это делает его максимально переиспользуемым.

Более сложный пример — композиция через явную передачу компонентов в props:

function PageLayout({ header, sidebar, content }) {
  return (
    
      {header}
      {sidebar}
      {content}
    
  );
}

function App() {
  return (
    }
      sidebar={}
      content={}
    />
  );
}

Где и зачем применять

Композиция применяется повсеместно в React-приложениях для создания гибкой и поддерживаемой архитектуры. Она полезна, когда вам нужно:

  • Создать переиспользуемые компоненты-обёртки (например, модальные окна, карточки, панели).
  • Разделить ответственность между компонентами (например, контейнер получает данные, а презентационный компонент их отображает).
  • Реализовать сложные UI-паттерны, такие как Higher-Order Components (HOC) или пользовательские хуки, которые композируют логику.

Вывод: Композиция — это ключевой подход в React для построения интерфейсов. Она делает код модульным, лёгким для тестирования и повторного использования. Всегда предпочитайте композицию наследованию при разработке на React.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    5

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

  • React

    React

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

#React

#component composition

#props

#children

#reusability

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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