Heim >Web-Frontend >js-Tutorial >So verwenden Sie Suspense in React für ein verbessertes asynchrones Rendering
React Suspense ist eine leistungsstarke Funktion, die es Entwicklern ermöglicht, asynchrones Rendering elegant zu handhaben, indem beim Laden von Komponenten oder Daten eine Fallback-Benutzeroberfläche angezeigt wird. Es funktioniert Hand in Hand mit React.lazy, Concurrent Rendering und Data Fetching-Lösungen wie React Query, Relay oder benutzerdefinierten Implementierungen.
import React, { Suspense } from "react"; const LazyComponent = React.lazy(() => import("./LazyComponent")); function App() { return ( <Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </Suspense> ); } export default App;
import React from "react"; import HeavyComponent from "./HeavyComponent"; function App() { return ( <div> <h1>Main App</h1> <HeavyComponent /> </div> ); } export default App;
Die HeavyComponent wird synchron geladen, wodurch sich die anfängliche Ladezeit verlängert.
import React, { Suspense } from "react"; const HeavyComponent = React.lazy(() => import("./HeavyComponent")); function App() { return ( <div> <h1>Main App</h1> <Suspense fallback={<div>Loading Heavy Component...</div>}> <HeavyComponent /> </Suspense> </div> ); } export default App;
Jetzt wird die HeavyComponent nur bei Bedarf geladen und zeigt während des Ladevorgangs einen Fallback an.
import React, { Suspense } from "react"; const ComponentA = React.lazy(() => import("./ComponentA")); const ComponentB = React.lazy(() => import("./ComponentB")); function App() { return ( <div> <h1>Main App</h1> <Suspense fallback={<div>Loading Components...</div>}> <ComponentA /> <ComponentB /> </Suspense> </div> ); } export default App;
Die Fallback-Benutzeroberfläche wird angezeigt, bis beide Komponenten vollständig geladen sind.
React Suspense ist auch für den asynchronen Datenabruf nützlich, wenn es in Bibliotheken wie Relay oder React Query integriert wird.
import React, { Suspense } from "react"; import { useQuery } from "react-query"; function DataComponent() { const { data } = useQuery("fetchData", fetchData); return <div>{data}</div>; } function App() { return ( <Suspense fallback={<div>Loading data...</div>}> <DataComponent /> </Suspense> ); } export default App;
Wenn beim Laden von Komponenten oder Daten ein Fehler auftritt, bietet React Suspense keine integrierte Fehlerbehandlung. Verwenden Sie zu diesem Zweck eine Fehlergrenze.
import React, { Suspense } from "react"; const LazyComponent = React.lazy(() => import("./LazyComponent")); function App() { return ( <Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </Suspense> ); } export default App;
Sie können mehrere Suspense-Komponenten verschachteln, um die Fallback-Status genau zu steuern.
import React from "react"; import HeavyComponent from "./HeavyComponent"; function App() { return ( <div> <h1>Main App</h1> <HeavyComponent /> </div> ); } export default App;
React Suspense ist ein vielseitiges Tool zur Verwaltung des asynchronen Renderings in React-Anwendungen. Es vereinfacht die Handhabung von Ladezuständen, verbessert die Leistung durch verzögertes Laden und sorgt in Kombination mit Techniken zur Codeaufteilung und Fehlerbehandlung für ein reibungsloseres Benutzererlebnis.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Suspense in React für ein verbessertes asynchrones Rendering. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!