我们知道 Router.push() 触发客户端渲染。
但是如何以编程方式触发服务器端渲染到页面?
示例:我有一个登录模式,它在提交时发送一个 api 调用来检查用户数据。一旦我得到用户正常的信息,我想加载一个页面,但通过服务器端渲染。
最佳答案
如果你想在服务器端渲染一个页面,你不能使用 Router
导航到它。或 Link
- 你应该使用原生 a
或 window.location
功能。在您的情况下,从 API 获得响应后,您想要触发重定向(就像用户单击链接一样),因此您应该调用:
window.location.href = "https://{yourDestination}"
这将强制向服务器发出请求。如您所见,
Router
和 Link
尝试将所有内容都保留在客户端。
关于next.js - 在Nextjs中,如何以编程方式触发服务端渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57376992/