一般来说,它们实现了相同的目标,但在不同的上下文中使用。
#1使用
redirect
中的对象
getServerSideProps
返回
重新使用
对象来自
getServerSideProps
本质上是从该函数中重定向到另一个路径的一种更惯用和有效的方式。来自
documentation
:
这个
重新使用
对象允许重定向到内部和外部
资源。它应该与
{ destination: string, permanent: boolean }
。在极少数情况下,您可能需要指定
旧版本的自定义状态代码
HTTP
客户端正确重定向。在里面
在这些情况下,您可以使用
statusCode
属性而不是
permanent
属性,但不是两者都有。
它最终(大致)在内部执行以下代码:
res.statusCode = 307
res.setHeader('Location', '/')
res.end()
在您的第一个代码块中,重定向将使用状态代码执行
307
,由于
permanent: false
价值
#2使用
res.redirect()
API路线
在Next.js中
res.redirect()
方法可以在API路由中用于重定向到指定的路径。来自
documentation
:
res.redirect([status,] path)
-重定向到指定的路径或URL。
status
必须是有效的
HTTP status code
如果没有指定,
地位
默认为“307”“临时重定向”。
它可以按如下方式使用,其中状态代码和路径被传递给它:
res.redirect(307, '/')