Catch-All Routes в Next.js позволяют динамически сопоставлять URL с гибкими параметрами пути, расширяя возможности системы маршрутизации вашего приложения.

Основные особенности

  • Динамические параметры: Доступ к сегментам пути с использованием символа ... (rest параметр).
  • Порядок сопоставления: Порядок определения определяет приоритет маршрутов.
  • Поведение при отсутствии совпадения: Возможность настроить поведение при отсутствии совпадения.

Конфигурация

Файл маршрутизации Next.js (pages/foo/[...bar].js):

  • Корневой Catch-All: Загружается для любого несопоставленного пути или маршрута /foo без дальнейших подпутей.
export default function CatchAll() {
  // Логика для Корневого Catch-All
}
  • Вложенный Catch-All: Активируется при доступе к корневому пути вместе с подкаталогами.
export default function NestedCatchAll() {
  // Логика для Вложенного Catch-All
}
  • Fallback Страницы: Идеально подходят для обработки ошибок или ожидания динамических данных.
export async function getServerSideProps() {
  // Логика получения данных
  return { props: { data } };
}
 
export default function Fallback({ data }) {
  return <div>{data}</div>;
}

Режимы Fallback

Укажите поведение при отсутствии совпадения в методе getStaticPaths

  • True: Генерирует пути во время сборки и обрабатывает отсутствующие маршруты как fallback (только SSG).
  • False: Точно определяет пути страниц во время сборки (без fallback).
  • ‘blocking’: Обрабатывает fallback через сервер во время выполнения (SSR или SSG).

Назад