【发布时间】:2021-02-15 00:47:53
【问题描述】:
我目前正在处理next.js tutorial,但我很难理解以下内容:
教程告诉我here,点击<Link>元素不会触发服务器请求,而是做“客户端导航”,即用js调整页面内容:
Link 组件支持在同一个 Next.js 应用中的两个页面之间进行客户端导航。客户端导航意味着页面转换使用 JavaScript 进行
马上三个问题:
- 对我来说,这听起来像是没有 next.js 等的常规 SPA 反应路由。但事实并非如此,对吧?
- 如果我在 Chrome 开发工具中禁用 javascript,
<Link>仍然有效。这表明过渡实际上并没有发生在 js 中。这与他们的说法相矛盾吗? - 当我右键单击页面并单击“查看源代码”(在 Chrome 中)时,我在单击
<Link>之前和之后得到不同的 HTML。 (与“常规”反应行为相反)。这怎么能算是“客户端导航”?
在教程中更进一步,他们告诉我here:
默认情况下,Next.js 会预渲染每个页面。这意味着 Next.js 会提前为每个页面生成 HTML,而不是全部由客户端 JavaScript 完成
这句话听起来与上面引用的另一句话相矛盾。你能帮我澄清一下吗?当我点击<Link> 时到底发生了什么?是否加载了新的 html 文件?如果是这样,这怎么会发生在“客户端”。谢谢!
【问题讨论】:
-
我在 2021 年也有同样的问题:|,你找到答案了吗?提前谢谢你。
-
@HM-Dave 请在下面查看我的回答:stackoverflow.com/a/69941337/7438905,希望它会有所帮助:)
标签: reactjs next.js server-side-rendering client-side