【问题标题】:In Nextjs, how to programatically trigger server side rendering?Nextjs中,如何以编程方式触发服务端渲染?
【发布时间】:2019-12-14 01:31:07
【问题描述】:

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

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

【问题讨论】:

    标签: next.js


    【解决方案1】:

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

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

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

    【讨论】:

    • 非常感谢。我知道它必须这么简单 :) 但我在想 Nextjs 有一些特殊的方法可以做到这一点。现在我明白这不是必需的,因为我们可以使用 window.location。
    猜你喜欢
    • 2022-07-05
    • 2021-07-21
    • 2023-03-25
    • 2017-11-15
    • 2021-10-08
    • 2018-05-22
    • 1970-01-01
    • 2017-07-15
    • 2014-04-22
    相关资源
    最近更新 更多