Code-Splitting mit React.lazy: Verbessern Sie die Leistung Ihrer App
Codeaufteilung mit React.lazy in React
Code-Splitting ist eine Technik zur Optimierung der Leistung von React-Anwendungen durch die Aufteilung des JavaScript-Bundles in kleinere Teile. React bietet React.lazy als integrierte Möglichkeit zur Implementierung der Codeaufteilung auf Komponentenebene. Dadurch können Sie Teile Ihrer Anwendung dynamisch laden, wenn sie benötigt werden.
So funktioniert die Codeaufteilung mit React.lazy
- Dynamischer Import: Verwendet ES6 import(), um Komponenten dynamisch zu laden.
- Kleinere Bundles: Zerlegt die App in kleinere Bundles und verkürzt so die anfängliche Ladezeit.
- Asynchrones Laden: Lädt Komponenten nur bei Bedarf asynchron.
Syntax
const LazyComponent = React.lazy(() => import('./LazyComponent')); function App() { return ( <React.Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </React.Suspense> ); }
- React.lazy: Importiert dynamisch die angegebene Komponente.
- Suspense: Stellt eine Fallback-Benutzeroberfläche bereit, während die Komponente geladen wird.
Beispiel 1: Grundlegende Codeaufteilung mit React.lazy
Ohne Code-Splitting
import React from "react"; import HeavyComponent from "./HeavyComponent"; function App() { return ( <div> <h1>Main App</h1> <HeavyComponent /> </div> ); } export default App;
Bei diesem Ansatz wird die gesamte HeavyComponent mit der Haupt-App gebündelt, auch wenn sie nicht sofort benötigt wird.
Mit Code-Splitting
import React, { Suspense } from "react"; const HeavyComponent = React.lazy(() => import("./HeavyComponent")); function App() { return ( <div> <h1>Main App</h1> <Suspense fallback={<div>Loading...</div>}> <HeavyComponent /> </Suspense> </div> ); } export default App;
HeavyComponent wird jetzt nur geladen, wenn es gerendert wird. Dadurch wird die Größe des ursprünglichen Pakets reduziert.
Beispiel 2: Codeaufteilung in Routen
Die Codeaufteilung funktioniert nahtlos mit React Router, um Routenkomponenten dynamisch zu laden.
import React, { Suspense } from "react"; import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; const Home = React.lazy(() => import("./Home")); const About = React.lazy(() => import("./About")); const Contact = React.lazy(() => import("./Contact")); function App() { return ( <Router> <Suspense fallback={<div>Loading Page...</div>}> <Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> <Route path="/contact" element={<Contact />} /> </Routes> </Suspense> </Router> ); } export default App;
Vorteile:
- Jede Routenkomponente (Home, Info, Kontakt) wird nur geladen, wenn auf die entsprechende Route zugegriffen wird.
Beispiel 3: Lazy Loading mehrerer Komponenten
Lazy Load mehrerer Komponenten in einer einzigen App mit logischer Aufteilung.
import React, { Suspense, useState } from "react"; const ComponentA = React.lazy(() => import("./ComponentA")); const ComponentB = React.lazy(() => import("./ComponentB")); function App() { const [showA, setShowA] = useState(false); const [showB, setShowB] = useState(false); return ( <div> <button onClick={() => setShowA(true)}>Load Component A</button> <button onClick={() => setShowB(true)}>Load Component B</button> <Suspense fallback={<div>Loading...</div>}> {showA && <ComponentA />} {showB && <ComponentB />} </Suspense> </div> ); } export default App;
Fehlerbehandlung mit React.lazy
React bietet keine integrierte Fehlerbehandlung für fehlgeschlagene Importe. Sie können eine Fehlergrenze verwenden, um solche Fälle zu behandeln.
const LazyComponent = React.lazy(() => import('./LazyComponent')); function App() { return ( <React.Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </React.Suspense> ); }
Best Practices für die Codeaufteilung
- Nach Route oder Funktion aufteilen: Teilen Sie Ihre App in logische Abschnitte auf, z. B. Routen oder Hauptfunktionen.
- Fallbacks minimal halten: Verwenden Sie einfache Fallback-Benutzeroberflächen wie Spinner oder Textnachrichten.
- Bundle-Größe überwachen: Verwenden Sie Tools wie Webpack Bundle Analyzer, um große Komponenten zu identifizieren.
- Übermäßige Aufteilung vermeiden: Gleichgewicht zwischen der Anzahl der Blöcke und der Leistung; Zu viele Blöcke können zu mehr HTTP-Anfragen führen.
Tools zur Verbesserung der Codeaufteilung
- Webpack: Unterstützt dynamische Importe für die Codeaufteilung.
- Vite: Bietet schnelle Builds und automatische Codeaufteilung.
- React Router: Ermöglicht eine einfache Integration mit routenbasiertem Lazy Loading.
- React Loadable: Eine Bibliothek eines Drittanbieters für eine verbesserte Kontrolle über Lazy Loading.
Abschluss
Die Codeaufteilung mit React.lazy ist eine leistungsstarke Möglichkeit, die Leistung Ihrer App zu verbessern. Durch das dynamische Laden von Komponenten können Sie die anfängliche Ladezeit verkürzen und das Benutzererlebnis verbessern. In Kombination mit Suspense und der richtigen Fehlerbehandlung bietet es eine robuste Lösung für die Erstellung effizienter, skalierbarer React-Anwendungen.
Das obige ist der detaillierte Inhalt vonCode-Splitting mit React.lazy: Verbessern Sie die Leistung Ihrer App. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Datenaktualisierungsprobleme in Zustand Asynchronen Operationen. Bei Verwendung der Zustand State Management Library stoßen Sie häufig auf das Problem der Datenaktualisierungen, die dazu führen, dass asynchrone Operationen unzeitgemäß sind. � ...
