Загрузка...
Загрузка...
Продолжая работу с платформой, вы принимаете условия Политики конфиденциальности и использование файлов cookie.
React.lazy и Suspense — это инструменты в React, которые позволяют лениво загружать компоненты, т.е. только тогда, когда они действительно нужны. Это называется code splitting (разделение кода), и оно помогает улучшить производительность приложения.
Это функция, которая позволяет динамически импортировать компонент и возвращать его как обычный React-компонент.
const LazyComponent = React.lazy(() => import('./MyComponent'));
Так как загрузка ленивого компонента может занять время, React предлагает компонент Suspense, в котором указывается fallback — что показать, пока компонент загружается.
import React, { Suspense } from "react";
const LazyComponent = React.lazy(() => import("./MyComponent"));
function App() {
return (
<div>
<Suspense fallback={<div>Загрузка...</div>}>
<LazyComponent />
</Suspense>
</div>
);
}
import { BrowserRouter, Routes, Route } from "react-router-dom";
import React, { lazy, Suspense } from "react";
const Home = lazy(() => import("./pages/Home"));
const About = lazy(() => import("./pages/About"));
function App() {
return (
<BrowserRouter>
<Suspense fallback={<p>Загрузка страницы...</p>}>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</Suspense>
</BrowserRouter>
);
}
React Query, Relay, RSC, или Suspense for data (в будущем).Suspense.| Без lazy | С lazy | |
|---|---|---|
| Загрузка кода | Загружается весь бандл | Загружаются только нужные части |
| Скорость старта | Долгая загрузка | Быстрый старт |
| Оптимизация | Много неиспользуемого кода | Только необходимый код |
Совет:
Используйте React.lazy для ленивой загрузки страниц, модальных окон, больших блоков и других нечасто используемых компонентов.