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

Порталы в React — это мощный инструмент для рендеринга компонентов за пределами дерева DOM их родительских компонентов. Они предоставляют способ отсоединить компонент от его родителя и присоединить его к другому узлу DOM, вместо того, чтобы находиться внутри его родительского компонента. Это обеспечивает большую гибкость и улучшенный дизайн пользовательского интерфейса. Это может быть полезно в определенных случаях, когда вы хотите отобразить компонент, который логически является дочерним по отношению к определенному компоненту, но вам нужно, чтобы он был физически отделен от своего родительского компонента в дереве DOM.

С помощью порталов вы можете создавать модальные окна, всплывающие подсказки или другие элементы пользовательского интерфейса, которые необходимо отображать поверх других компонентов, независимо от их отношения родитель-потомок. Порталы создаются с использованием метода ReactDOM.createPortal и могут использоваться для воплощения ваших компонентов в жизнь новыми и творческими способами.

Скажем, у вас может быть модальный компонент, который вы хотите отображать вне основного компонента приложения, чтобы он отображался поверх других компонентов независимо от иерархии родитель-потомок. Порталы позволяют сделать это путем создания нового **корня** в DOM и присоединения к нему вашего компонента. Вы предоставляете компонент, который хотите визуализировать, и узел DOM, где вы хотите его визуализировать.

Например:

function Modal({ children }) {
 return ReactDOM.createPortal(children, document.getElementById("modal-root"));
}

В приведенном выше примере у нас есть модальный компонент, который отображает своих дочерних элементов с помощью портала. document.getElementById('modal-root') — это DOM-узел, который мы создали в другом месте нашего HTML-файла (index.html), где мы хотим отобразить наш модальный компонент.

Таким образом, мы можем отображать модальный компонент вне основного компонента приложения и отображать его поверх других компонентов.

Узел DOM, который мы создали в нашем HTML

<div id="modal-root"></div>

Визуализированный HTML

Модальный компонент будет отображаться в элементе modal-root, который вам нужно будет определить в вашем HTML:

🍀Поддержка

Пожалуйста, следите за нами и поддержите нас, подписавшись на наш канал. Ваша поддержка очень ценна и поможет нам продолжать создавать контент для вас. Спасибо заранее за вашу поддержку!

Ютуб
Гитхаб
Твиттер