React4 min read

React Portal

Render components outside parent DOM hierarchy with Portals.

Sarah Johnson
December 20, 2025
0.0k0

Portals render components outside parent DOM.

Creating Portal

import { createPortal } from 'react-dom';

function Modal({ children }) {
  return createPortal(
    <div className="modal">
      {children}
    </div>,
    document.getElementById('modal-root')
  );
}

index.html Setup

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

Usage

function App() {
  const [show, setShow] = useState(false);

  return (
    <div>
      <button onClick={() => setShow(true)}>Open Modal</button>
      {show && (
        <Modal>
          <h2>Modal Content</h2>
          <button onClick={() => setShow(false)}>Close</button>
        </Modal>
      )}
    </div>
  );
}

Remember

  • Use for modals, tooltips
  • Renders outside parent DOM
  • Events still bubble to parent

Next: Learn fragments!

#React#Portal#Modal#Intermediate