Spec-Zone.ru › Next.js

permanentRedirect

Функция permanentRedirect позволяет перенаправить пользователя на другой URL. permanentRedirect может использоваться в компонентах сервера, компонентах клиента, обработчиках маршрутов и действиях сервера.

При использовании в контексте потоковой передачи данных эта функция вставит тег meta для отправки перенаправления на стороне клиента. При использовании в действии сервера она отправит ответ 303 HTTP-перенаправления вызывающему объекту. В противном случае она отправит ответ 308 (постоянное) HTTP-перенаправления вызывающему объекту.

Если ресурс не существует, можно использовать функцию notFound вместо неё.

Важно знать: Если вместо 308 (постоянного) вы предпочитаете возвращать 307 (временное) HTTP-перенаправление, можно использовать функцию redirect вместо неё.

Параметры

Функция permanentRedirect принимает два аргумента:

permanentRedirect(path, type)
Параметр Тип Описание
path string URL для перенаправления. Может быть относительным или абсолютным путём.
type 'replace' (по умолчанию) или 'push' (по умолчанию в действиях сервера) Тип выполняемого перенаправления.

По умолчанию, permanentRedirect будет использовать push (добавление новой записи в стек истории браузера) в действиях сервера и replace (замена текущего URL в стеке истории браузера) во всех остальных случаях. Это поведение можно переопределить, указав параметр type.

Параметр type не имеет эффекта при использовании в компонентах сервера.

Возвращаемое значение

Функция permanentRedirect не возвращает никаких значений.

Пример

Вызов функции permanentRedirect() генерирует ошибку NEXT_REDIRECT и прекращает рендеринг сегмента маршрута, в котором она была сгенерирована.

import { permanentRedirect } from 'next/navigation'
 
async function fetchTeam(id) {
  const res = await fetch('https://...')
  if (!res.ok) return undefined
  return res.json()
}
 
export default async function Profile({ params }) {
  const team = await fetchTeam(params.id)
  if (!team) {
    permanentRedirect('/login')
  }
 
  // ...
}

Важно знать: Функции permanentRedirect не требуется использовать return permanentRedirect(), так как она использует тип TypeScript never.

© 2024 Vercel, Inc.
Licensed under the MIT License.
https://nextjs.org/docs/app/api-reference/functions/permanentRedirect

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API