Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про React: react, portal, modal

Что такое React Portals и зачем они нужны?

Вопрос проверяет понимание структуры DOM и способов рендеринга элементов вне текущего дерева.

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

React Portals позволяют рендерить компонент в другой части DOM, не меняя структуру React-компонентов. Это часто используется для модальных окон, тултипов и выпадающих меню. Такой подход помогает избежать проблем с z-index и переполнением контейнеров. Логика компонента при этом остается в том же месте.

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

Иногда элемент должен отображаться вне родительского контейнера, но логически оставаться внутри компонента.

Определение:
Portal — это способ рендеринга React-элемента в произвольный DOM-узел с помощью ReactDOM.createPortal.

Пример

ReactDOM.createPortal(
  <Modal />,
  document.getElementById("modal-root")
);

Как это работает

  1. Компонент остается в дереве React.

  2. В DOM он размещается в другом месте.

  3. События продолжают работать как обычно.

Когда используется

  1. Модальные окна.

  2. Тултипы.

  3. Контекстные меню.

Почему это важно

Контейнеры могут иметь overflow: hidden или ограничения по позиционированию.

Вывод

Portals позволяют корректно отображать элементы поверх интерфейса, не нарушая архитектуру компонентов.

Уровень

  • Рейтинг:

    4

  • Сложность:

    6

Навыки

  • React

    React

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

#react

#portal

#modal

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