Назад в блог

~ 4 минуты

Чем отличается fallback: true от fallback: false и fallback: "blocking" в Next.js?

225

1/20/2024

В этой статье рассмотрим различные варианты параметра fallback в функции getStaticPaths фреймворка Next.js. Обсудим три варианта: fallback: false, fallback: true и fallback: 'blocking', а также их влияние на процесс генерации страниц сайта

Вадим Пашаев

Вадим Пашаев

Инженер, веб-разработчик, путешественник

Чем отличается fallback: true от fallback: false и fallback: "blocking" в Next.js? | PXSTUDIO
Регистрация товарных знаков
Домены, хостинг от reg.ru

В функции getStaticPaths в Next.js, параметр fallback определяет, что произойдет, если запрос будет сделан к пути, который не был возвращен функцией getStaticPaths.

В чем разница между fallback: false, fallback: true и fallback: 'blocking'?

fallback: false

При установленном параметре fallback в false будут видимы только те страницы, которые были сгенерированы во время сборки (т.е. возвращены из свойства paths функции getStaticPaths). Если пользователь создает новую страницу блога, отличающуюся от тех, что возвращается из getStaticPaths, то при посещении этого URL будет возвращена ошибка 404. Эта новая запись станет видимой только если вы перезапустите next build, и getStaticPaths вернет эту страницу в paths.

fallback: true

С этой опцией, Next.js проверяет, была ли страница предварительно отрендерена в HTML в .next/server/pages. Если нет, то Next.js сначала быстро возвращает предварительно отрендеренную “заглушку” со страницей, созданную во время сборки. Затем Next.js в фоновом режиме запускает getStaticProps для этого пути, чтобы получить необходимые данные и отрендерить полную страницу. После завершения этого процесса, при следующих запросах к этому пути, будет отображена полная страница пользователям.

fallback: ‘blocking’

При fallback установленном в blocking и когда происходит первый запрос, к странице, которая не была сгенерирована на этапе билда, Next.js будет рендерить страницу. Все будущие запросы будут уже загружать статический файл из кэша.

Важно отметить, что в случае ошибки во время регенерации с fallback: true, пользователю будет отображаться последняя успешно сгенерированная версия страницы до тех пор, пока не будет успешно завершена новая регенерация. Так Next.js обеспечивает стабильность и доступность вашего веб-приложения, даже если возникают временные проблемы с регенерацией.

Для справки

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Подписаться на рассылку

Получите лучшие новости по веб-разработке и AI

Оценка проекта

Хотите быструю оценку Вашего проекта?

Василий Иванов
Максим Насенников
Виктория Мальцева
Vadim Pashaev

Заполните форму справа и наша команда экспертов поможет найти для Вас оптимальное решение вашей идеи или задачи

Есть интересная идея?

И вы очень хотите ее реализовать, пишите нам и получите подробное коммерческое предложение и быструю реализацию