Next.js 系列围绕“一次页面如何到达用户”展开,重点理解代码在哪里执行、页面何时生成、路由如何导航、数据如何读取,以及缓存和部署如何影响最终结果。这里仅保留方向,不提前规定每篇文章的完整结构。
核心问题
- 一段代码运行在构建期、请求期还是浏览器?
- URL 如何匹配路由,首次访问与客户端导航有什么不同?
- HTML、JavaScript、Hydration 和 RSC 分别承担什么职责?
- 数据变化后,页面为什么仍可能显示旧内容?
- Pages Router 与 App Router 共享哪些问题,又有哪些不同机制?
知识地图
Next.js
├── 执行边界
│ ├── 构建期、请求期与浏览器
│ └── Browser、React、Next.js 与 Node.js
├── 路由与导航
│ ├── 文件路由与动态路由
│ ├── 首次访问、Link 与客户端导航
│ └── Pages Router 与 App Router
├── 渲染与页面交付
│ ├── CSR、SSR、SSG 与 ISR
│ ├── HTML、Hydration 与客户端交互
│ └── Server Components、RSC 与 Streaming
├── 数据与缓存
│ ├── 服务端读取与客户端读取
│ ├── Server Action、Route Handler 与 API Route
│ └── 缓存、重新验证与多实例边界
└── 运行边界
├── 错误传播与恢复
├── 输入、身份与授权
├── 构建产物与运行时
└── 部署形态与验证边界
推荐推进顺序
- 先用“在哪里执行、何时执行”建立统一坐标。
- 再理解路由、预渲染、Hydration 和客户端导航。
- 使用当前 Pages Router 博客串起静态文章、请求期 sitemap、API Route 和浏览器留言。
- 使用独立小项目理解 App Router 的路由树、Server/Client Component、Streaming 和数据修改。
- 最后讨论缓存、错误、安全、构建和部署。
项目案例与边界
- 当前博客是 Next.js 15 Pages Router,只用于证明当前代码路径。
- App Router 使用独立实验;正式写作时再固定 Next.js 版本和缓存配置,避免混用不同模型。
- 当前文章页没有配置 ISR,ISR 使用独立小实验说明。
- Pages Router 的页面数据与 App Router 的 RSC Payload 不是同一种协议。
- Node.js 负责 HTTP、进程、I/O 和连接等底层语义;Next.js 系列关注框架的路由、渲染、缓存和映射方式。