javascript - 单击 NextJS 按钮后,服务器端在 React 中呈现模式

标签 javascript reactjs next.js

我想在单击按钮时在服务器端渲染 ReactJS 中的模式。您可以在 Product Hunt 的网站上查看示例:

https://www.producthunt.com/

如果您单击其中一种流行产品,它会打开一个模式,然后该页面将在服务器端呈现为正常请求。

我不太擅长 React,但是有人可以给我指出正确的方向或显示代码示例吗?

我想我可以在有人单击激活模式的链接时预取页面,然后在模式中显示获取的内容:https://github.com/zeit/next.js/tree/master/examples/with-prefetching

最佳答案

我认为 Producthunt 上的产品模式不是服务器渲染的。当您单击产品时,它会打开模式,然后加载数据客户端。除了此操作之外,还使用历史记录更新 URL。现在,如果您刷新页面,它将呈现不同的 View 。您可以通过以类似的方式使用两个不同的 View 来使用 next 来实现这一点。例如,您可以在 pages 目录中创建两个页面,例如:

pages
|- homepage.js
|- product.js

然后在您的服务器配置中,您可以路由从 /product 开始的所有请求以呈现 product.js。模态逻辑可以保留在 homepage.js 中,您可以在单击产品时在其中呈现适当的模态。您还可以在打开模式时将 URL 推送到历史记录。

现在,如果刷新页面或使用相同的 URL 打开新的浏览器选项卡/窗口,它会要求服务器呈现 product.js

关于javascript - 单击 NextJS 按钮后,服务器端在 React 中呈现模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53183474/

相关文章:

javascript - 下一个JS : Right way to fetch client-side only data in a Functional Component

reactjs - 如何使用 redux-saga 在 getInitialProps 中获取数据。然后在 getInitialProps 方法中从 redux store 获取响应?

javascript - 如何为 LIstView 中的每一行添加一个按钮?

javascript - 继续调用函数,直到满足条件

javascript - $routeProvider/$locationProvider 不是 AngularJS 路由中的函数

javascript - AJAX评论系统验证问题

reactjs - Azure 网站中的 React App 缓存问题,浏览器提供旧版本

javascript - 如何修复对象作为 React 子对象无效

javascript - ReplaceWith 不适用于函数内部

javascript - 如何让 Ajax.Autocomplete 在不输入的情况下执行请求?