Lazy-Loading und Suspense
Um die Menge an Anfangs geladenem JavaScript zu minimieren, können einzelne Komponenten mit React.lazy() importiert werden, so dass sie erst dann geladen werden, wenn sie tatsächlich dargestellt werden.
Bei einfachen Komponenten ist dies nicht nötig, aber bei Komponenten mit vielen Kindelementen oder mit vielen zusätzlich nötigen Ressourcen (z.B. eingebettete Karten) ist Lazy-Loading sehr empfehlenswert.
Lazy-Loading-Komponenten müssen innerhalb einer React.Suspense-Komponente verwendet werden, welche im fallback-Prop eine Komponente benötigen, die während der Ladezeit dargestellt wird. Es ist geplant, dass Suspense u.a. auch genutzt werden kann, um z.B. während dem Laden von Daten mit fetch eine Lade-Anzeige darzustellen.
Diese und andere Funktionalitäten werden aber erst Stück für Stück implementiert, hier also die aktuelle React-Dokumentation beachten.
https://reactjs.org/docs/react-api.html#reactlazy
Verschiedene Möglichkeiten, Code nachzuladen, etwa bei einer YouTube-Einbindung, auch außerhalb von React.