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

In Nextjs, how to programatically trigger server side rendering?

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

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

如果你想在服务器端呈现页面,你不能使用 RouterLink 导航到它 - 你应该使用原生 awindow.location 功能。在你的例子中,在你得到 API 的响应后,你想要触发重定向(就像用户点击了 link),所以你应该调用:

window.location.href = "https://{yourDestination}"

这将强制向服务器发出请求。如您所见,RouterLink 试图将所有内容都保留在客户端。