You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js是否会预渲染条件展示、初始未显示的HTML内容?

Next.js 是否预渲染条件式展示的初始隐藏内容?

答案分核心场景逐一说明:

1. 服务端渲染(SSR)/ 静态生成(SSG)场景(Pages Router 或 App Router 中的服务端组件)

  • 若条件判断可在服务端确定结果:比如基于路由参数、服务端数据明确初始不显示某部分内容,Next.js 不会预渲染这部分 HTML。比如默认激活第一个标签的标签页,服务端渲染时只会生成第一个标签的内容,未激活标签的 HTML 不会出现在预渲染产物中。
  • 若条件判断依赖客户端专属状态:比如用useState控制初始隐藏的内容(初始值为false)、依赖window对象的判断逻辑,服务端无法预知这些状态,预渲染时不会生成对应 HTML。比如点击按钮才显示的弹窗,预渲染的页面源码里找不到弹窗结构,只有用户触发交互后,客户端才会渲染这部分内容。

2. 客户端组件场景(Next.js 13+ App Router)

客户端组件完全在浏览器端执行渲染逻辑,预渲染阶段(服务端)不会生成任何客户端组件的 HTML——不管内容是否条件隐藏,只有当客户端加载并执行组件代码后,才会根据条件渲染对应的内容。

例外情况

如果用dynamic导入组件时设置了ssr: false(完全禁用该组件的服务端渲染),那无论条件如何,这部分组件都不会被预渲染,只能在客户端加载后处理。

内容的提问来源于stack exchange,提问作者Vitali Skripka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 13:28:16