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...}> <lazycomponent></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 id="Main-App">Main App</h1> <heavycomponent></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 id="Main-App">Main App</h1> <suspense fallback="{<div">Loading...</suspense> </div>}> <heavycomponent></heavycomponent> ); } 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...}> <routes> <route path="/" element="{<Home"></route>} /> <route path="/about" element="{<About"></route>} /> <route path="/contact" element="{<Contact"></route>} /> </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...</suspense> </div>}> {showA && <componenta></componenta>} {showB && <componentb></componentb>} ); } 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...}> <lazycomponent></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!

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 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.

Python eignet sich besser für Datenwissenschaft und maschinelles Lernen, während JavaScript besser für die Entwicklung von Front-End- und Vollstapel geeignet ist. 1. Python ist bekannt für seine prägnante Syntax- und Rich -Bibliotheks -Ökosystems und ist für die Datenanalyse und die Webentwicklung geeignet. 2. JavaScript ist der Kern der Front-End-Entwicklung. Node.js unterstützt die serverseitige Programmierung und eignet sich für die Entwicklung der Vollstapel.

JavaScript erfordert keine Installation, da es bereits in moderne Browser integriert ist. Sie benötigen nur einen Texteditor und einen Browser, um loszulegen. 1) Führen Sie sie in der Browser -Umgebung durch, indem Sie die HTML -Datei durch Tags einbetten. 2) Führen Sie die JavaScript -Datei nach dem Herunterladen und Installieren von node.js nach dem Herunterladen und Installieren der Befehlszeile aus.

So senden Sie im Voraus Aufgabenbenachrichtigungen in Quartz Wenn der Quartz -Timer eine Aufgabe plant, wird die Ausführungszeit der Aufgabe durch den Cron -Ausdruck festgelegt. Jetzt...

So erhalten Sie die Parameter von Funktionen für Prototyp -Ketten in JavaScript in JavaScript -Programmier-, Verständnis- und Manipulationsfunktionsparametern auf Prototypungsketten ist eine übliche und wichtige Aufgabe ...

Analyse des Grundes, warum der dynamische Verschiebungsfehler der Verwendung von VUE.JS im WeChat Applet Web-View Vue.js verwendet ...

Wie kann ich gleichzeitige Anfragen für mehrere Links und nach Abfolge der Rückgabeergebnisse beurteilen? In Tampermonkey -Skripten müssen wir oft mehrere Ketten verwenden ...


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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen