javascript - 单击 NextJS 的按钮时,服务器端在 React 中呈现模式
问题描述
我想在单击按钮时在 ReactJS 中渲染一个模式。您可以在 Product Hunt 的网站上看到一个示例:
如果您单击其中一个流行产品,它会打开一个模式,然后该页面在服务器端呈现为正常请求。
我对 React 不是很好,但是有人可以指出我正确的方向或显示代码示例吗?
我想我可以在有人单击激活模式的链接时预取页面,然后在模式中显示获取的内容:https ://github.com/zeit/next.js/tree/master/examples/with-预取
解决方案
我不认为 producthunt 上的产品模式是服务器渲染的。当您单击产品时,它会打开模式,然后加载数据客户端。除此操作外,还使用history
. 现在,如果您刷新页面,它将呈现不同的视图。您可以next
通过以类似方式拥有两个不同的视图来实现这一点。例如,您可以在pages
目录中创建两个页面,例如:
pages
|- homepage.js
|- product.js
然后在您的服务器配置中,您可以将所有请求从开始路由/product
到 render product.js
。模态逻辑可以保留在homepage.js
您单击产品时呈现适当模态的位置。您还可以在打开模式时将 url 推送到历史记录。
现在,如果页面被刷新或新的浏览器选项卡/窗口使用相同的 url 打开,它将要求服务器呈现product.js
。
推荐阅读
- c# - 我们可以在使用 Unity 事件调用的函数中添加 for 循环吗
- python - 如何在 Windows Batch/Python 文件中获取当前目录的路径?
- cobol - 我如何让这个棒球项目运行起来?
- cmake - clang++ 编译一个可执行文件,但是 clang-check 找不到 std 头
- python - Scikit 值错误:预期的 2D 数组,得到 1D 数组
- css - 使父 Div 环绕动态绝对子 Div(选项卡 + 内容)
- reactjs - React SideBar 多级下拉递归
- html - 如何将按钮放在框的右下角
- javascript - 使用 Javascript 从其 URL 获取网站的正文
- javascript - 有没有办法准确知道队列中的最后一个任务何时开始在多线程应用程序中?