Вопрос проверяет понимание работы Virtual DOM и порталов в React, а также умение объяснять, как React управляет DOM-деревом при использовании createPortal.
В React Virtual DOM — это абстрактное представление пользовательского интерфейса, которое не зависит от реальной DOM-структуры. Когда вы используете createPortal, вы указываете React, что определённый элемент должен быть смонтирован в другой DOM-контейнер, но в Virtual DOM он остаётся частью родительского компонента.
import { createPortal } from 'react-dom';
function Modal({ children }) {
return createPortal(
<div className="modal">{children}</div>,
document.getElementById('modal-root')
);
}
function App() {
return (
<div>
<h1>Main App</h1>
<Modal>
<p>This is in a portal</p>
</Modal>
</div>
);
}В этом примере Modal рендерится в #modal-root, но в Virtual DOM он остаётся дочерним элементом App. React управляет обновлениями портала через свой алгоритм сравнения (reconciliation), который работает на уровне Virtual DOM, а не реального DOM.
createPortal — это мощный инструмент для рендеринга модальных окон, тултипов или других элементов вне основного потока DOM, при этом Virtual DOM сохраняет логическую структуру приложения, что упрощает управление состоянием и событиями.
Уровень
Рейтинг:
4
Сложность:
6
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию