Next.js 14中SSG页面组件内容为何未在网络面板显示?
为什么Next.js 14 SSG生成的About页面在客户端跳转时,网络请求中看不到Info组件的文本?
客户端路由请求的是RSC序列化数据而非完整HTML
当你用Next.js的<Link>组件从首页跳转到/about时,属于客户端导航,不会触发全页刷新。此时浏览器请求的是React Server Components(RSC)的序列化payload(通常是JSON格式),而非构建时生成的静态HTML文件。这个payload存储的是组件树的结构化数据,不会直接包含"info-component"这类明文文本,客户端会基于这些数据在本地渲染出组件内容。静态HTML仅在直接访问/刷新时加载
你通过SSG生成的静态HTML,只有在直接输入/about URL并刷新页面,或从外部链接进入该页面时,才会被浏览器请求。此时查看网络面板里的HTML响应,就能找到"info-component"文本。组件类型决定内容是否出现在请求中
- 若Info是服务器组件:它的内容在构建阶段就嵌入到静态HTML里,但客户端导航时,Next.js会复用客户端缓存或仅请求必要的更新片段,不会重复发送完整的组件文本。
- 若Info是客户端组件(带有
'use client'指令):它的代码被打包在客户端JS bundle中,"info-component"文本是在客户端执行JS时才渲染生成的,不会出现在任何网络请求的响应里。
内容的提问来源于stack exchange,提问作者by-brt
相关产品推荐
相关产品推荐

