Back to questions
Middle+
2
Что такое порталы (createPortal) в React?
Companies where asked
Perfluence
Answer from AI
sobes.tech AI
В React порталы (createPortal) позволяют рендерить дочерние элементы компонента в DOM-узел, который находится вне иерархии родительского компонента.
Это полезно, когда нужно, например, вывести модальное окно, всплывающую подсказку или контекстное меню, которые визуально должны быть вне текущего контейнера, но логически связаны с компонентом.
Пример использования:
import React from 'react';
import ReactDOM from 'react-dom';
function Modal({ children }) {
return ReactDOM.createPortal(
<div className="modal">
{children}
</div>,
document.getElementById('modal-root') // элемент вне основного корня приложения
);
}
Здесь содержимое модального окна будет вставлено в элемент с id modal-root, который может находиться в любом месте DOM, что помогает избежать проблем с CSS-стилями или контекстом позиционирования.