Как использовать Suspense и lazy для загрузки компонентов маршрутов?

Этот вопрос проверяет знание работы с React.lazy и Suspense

Короткий ответ

React.lazy используется для ленивого импорта компонентов, а Suspense позволяет показывать индикатор загрузки, пока компонент загружается.

Длинный ответ

React.lazy и Suspense работают вместе, чтобы облегчить загрузку больших компонентов или страниц. Основная идея заключается в том, чтобы загружать компоненты только тогда, когда они действительно нужны.

 

Настройка React.lazy:

Используйте функцию React.lazy для ленивого импорта:

const Profile = lazy(() => import('./Profile'));

 

Использование Suspense:

Оберните маршруты или компоненты в <Suspense> для обработки состояния загрузки:

import { Suspense } from 'react';

const App = () => (
  <Suspense fallback={<div>Loading...</div>}>
    <Routes>
      <Route path="/profile" element={<Profile />} />
    </Routes>
  </Suspense>
);

 

Преимущества:

- Компоненты подгружаются только при их использовании.

- Уменьшается время загрузки главной страницы приложения.

 

Пример с вложенными маршрутами:

- Работает и с вложенными маршрутами:

const Dashboard = lazy(() => import('./Dashboard'));
const Settings = lazy(() => import('./Settings'));

const App = () => (
  <Suspense fallback={<div>Loading...</div>}>
    <Routes>
      <Route path="/dashboard" element={<Dashboard />}>
        <Route path="settings" element={<Settings />} />
      </Route>
    </Routes>
  </Suspense>
);

Таким образом, lazy и Suspense позволяют управлять загрузкой компонентов, минимизируя время загрузки приложения и улучшая пользовательский опыт.

Уровень

  • Рейтинг:

    5

  • Сложность:

    9

Навыки

  • React Router

    React Router

Ключевые слова

Подпишись на React Developer в телеграм