РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗jsnxSpCaSm 55 of 69 menu
◀ ▶

Поток в NextJS

Не весь HTML страницы обязан ждать самый долгий запрос. NextJS может отправить браузеру готовую оболочку сразу, а медленный фрагмент догрузить позже. Для этого в React есть компонент Suspense: он показывает запасной вариант, пока дочерний асинхронный компонент не завершит работу.

Границу ставят прямо в page.jsx, рядом с основной разметкой. Файл loading.jsx здесь не нужен - он относится ко всему сегменту маршрута, а мы управляем только одним блоком внутри страницы.

Давайте вынесем медленный список в отдельную асинхронную функцию и обернем ее в Suspense с коротким fallback:

import { Suspense } from 'react'; async function RecentOrders() { let response = await fetch('https://jsonplaceholder.typicode.com/users'); let users = await response.json(); return ( <ul> {users.map(function (user) { return <li key={user.id}>{user.name}</li>; })} </ul> ); } export default function DashboardPage() { return ( <div> <h1>Dashboard</h1> <p>Welcome back. Your summary is ready.</p> <Suspense fallback={<p>Loading orders...</p>}> <RecentOrders /> </Suspense> </div> ); }

Покажите заголовок и приветствие сразу, а список новостей загрузите внутри границы с текстом ожидания на английском.

Вынесите медленный блок в отдельную асинхронную функцию в том же файле.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить