React Suspense는 구성 요소나 데이터가 로드되는 동안 대체 UI를 표시하여 개발자가 비동기 렌더링을 우아하게 처리할 수 있게 해주는 강력한 기능입니다. 이는 React.lazy, 동시 렌더링 및 React Query, Relay 또는 사용자 정의 구현과 같은 데이터 가져오기 솔루션과 함께 작동합니다.
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;
HeavyComponent가 동기식으로 로드되어 초기 로드 시간이 늘어납니다.
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;
이제 HeavyComponent는 필요할 때만 로드되어 로드 프로세스 중에 폴백을 표시합니다.
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;
대체 UI는 두 구성 요소 로드가 완료될 때까지
표시됩니다.React Suspense는 Relay 또는 React Query와 같은 라이브러리와 통합될 때 비동기 데이터 가져오기에도 유용합니다.
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;
컴포넌트나 데이터를 로드하는 중에 오류가 발생하면 React Suspense는 내장된 오류 처리 기능을 제공하지 않습니다. 이러한 목적으로 오류 경계를 사용하세요.
import React, { Suspense } from "react"; const LazyComponent = React.lazy(() => import("./LazyComponent")); function App() { return ( <Suspense fallback={<div>Loading...</div>}> <LazyComponent /> </Suspense> ); } export default App;
대체 상태를 세부적으로 제어하기 위해 여러 Suspense 구성요소를 중첩할 수 있습니다.
import React from "react"; import HeavyComponent from "./HeavyComponent"; function App() { return ( <div> <h1>Main App</h1> <HeavyComponent /> </div> ); } export default App;
React Suspense는 React 애플리케이션에서 비동기 렌더링을 관리하기 위한 다목적 도구입니다. 로딩 상태 처리를 단순화하고, 지연 로딩으로 성능을 향상시키며, 코드 분할 및 오류 처리 기술과 결합하면 더욱 원활한 사용자 경험을 제공합니다.
위 내용은 향상된 비동기 렌더링을 위해 React에서 Suspense를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!