redirect
Функция redirect
позволяет перенаправлять пользователя на другой URL. redirect
может использоваться в серверных компонентах (Server Components), клиентских компонентах (Client Components), обработчиках маршрутов (Route Handlers) и серверных действиях (Server Actions).
При использовании в контексте потоковой передачи (streaming context) функция добавит мета-тег для выполнения перенаправления на стороне клиента. В противном случае будет возвращён HTTP-ответ с кодом 307 (временное перенаправление).
Если ресурс не существует, вместо этого можно использовать функцию notFound
.
Полезно знать: Если требуется вернуть HTTP-перенаправление с кодом 308 (постоянное) вместо 307 (временное), можно использовать функцию
permanentRedirect
.
Параметры
Функция redirect
принимает два аргумента:
redirect(path, type)
Параметр | Тип | Описание |
---|---|---|
path | string | URL для перенаправления. Может быть относительным или абсолютным. |
type | 'replace' (по умолчанию) или 'push' (по умолчанию в Server Actions) | Тип выполняемого перенаправления. |
По умолчанию redirect
использует push
(добавляет новую запись в стек истории браузера) в серверных действиях (Server Actions) и replace
(заменяет текущий URL в стеке истории браузера) во всех остальных случаях. Это поведение можно переопределить, указав параметр type
.
Параметр type
не имеет эффекта при использовании в серверных компонентах (Server Components).
Возвращаемое значение
Функция redirect
не возвращает никакого значения.
Пример
Вызов функции redirect()
вызывает ошибку NEXT_REDIRECT
и прекращает рендеринг сегмента маршрута, в котором она была вызвана.
import { redirect } 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) {
redirect('/login')
}
// ...
}
Полезно знать:
redirect
не требует использованияreturn redirect()
, так как использует тип TypeScriptnever
.
Версия | Изменения |
---|---|
v13.0.0 | Добавлена функция redirect . |