在 Next Js 中,如何以编程方式触发服务端渲染?
In Nextjs, how to programatically trigger server side rendering?
我们知道 Router.push() 会触发客户端渲染。
但是我如何以编程方式触发服务器端对页面的呈现?
示例:我有一个登录模式,它在提交时发送一个 api 调用来检查用户数据。一旦我得到用户正常的信息,我想通过服务器端渲染加载页面。
如果你想在服务器端呈现页面,你不能使用 Router
或 Link
导航到它 - 你应该使用原生 a
或 window.location
功能。在你的例子中,在你得到 API 的响应后,你想要触发重定向(就像用户点击了 link),所以你应该调用:
window.location.href = "https://{yourDestination}"
这将强制向服务器发出请求。如您所见,Router
和 Link
试图将所有内容都保留在客户端。
我们知道 Router.push() 会触发客户端渲染。 但是我如何以编程方式触发服务器端对页面的呈现?
示例:我有一个登录模式,它在提交时发送一个 api 调用来检查用户数据。一旦我得到用户正常的信息,我想通过服务器端渲染加载页面。
如果你想在服务器端呈现页面,你不能使用 Router
或 Link
导航到它 - 你应该使用原生 a
或 window.location
功能。在你的例子中,在你得到 API 的响应后,你想要触发重定向(就像用户点击了 link),所以你应该调用:
window.location.href = "https://{yourDestination}"
这将强制向服务器发出请求。如您所见,Router
和 Link
试图将所有内容都保留在客户端。