在Nextjs中,如何以编程方式触发服务端渲染?

flo*_*flo 6 next.js

我们知道 Router.push() 触发客户端渲染。但是如何以编程方式触发服务器端渲染到页面?

示例:我有一个登录模式,它在提交时发送一个 api 调用来检查用户数据。一旦我得到用户正常的信息,我想加载一个页面,但通过服务器端渲染。

I'm*_*Too 7

如果您想在服务器端呈现页面,则无法使用Routeror导航到它Link- 您应该使用本机awindow.location功能。在您的情况下,从 API 获得响应后,您想要触发重定向(就像用户单击链接一样),因此您应该调用:

window.location.href = "https://{yourDestination}"
Run Code Online (Sandbox Code Playgroud)

这将强制向服务器发出请求。正如您所经历的那样,RouterLink尝试将所有内容都保留在客户端。

  • 非常感谢。我知道事情一定就是这么简单:) 但我在想 Nextjs 有一些特殊的方法可以做到这一点。现在我明白这是没有必要的,因为我们可以使用 window.location。 (2认同)