// ARTICLE//预计阅读 1 分钟

Next.js 16 App Router 实战心得

关于 Server Components、客户端边界与静态页面生成的结构拆分思考。

Next.js App Router 倡导默认服务端渲染与极简的客户端交互边界。在单应用博客或内容型站点中,这种模式表现出极高的首屏速度和低维护成本。

客户端组件的边界控制#

尽量将 'use client' 收敛在叶子节点。例如点赞按钮、滚动监听条、主题切换器等需要访问浏览器原生 API 的组件:

  • 页面的大部分结构(文字排版、元数据生成、静态数据加载)留在服务端完成。
  • 只有依赖 useStatewindow 的微型组件才下沉到 client 端。
// 推荐做法:通过 children 将 Server Component 传入 Client 容器
export function ClientWrapper({ children }: { children: React.ReactNode }) {
  return <div className="client-container">{children}</div>
}

静态生成与构建优化#

使用 generateStaticParams 预计算全部静态路径:

路由参数生成方式缓存行为
/blog/[slug]静态遍历本地文件部署时纯静态 HTML
/blog/tags/[tag]统计标签去重生成构建时全量预烘焙
// 强制未匹配的路由直接返回 404,不进入按需计算
export const dynamicParams = false

为什么避免在构建期查询外部接口#

内容型站点应以 Git 提交作为发布动作的唯一触发源。这样既可以脱离数据库依赖,又能彻底避免构建过程中第三方接口超时导致的打包失败。

Next.js 16 App Router 实战心得

作者:喜东东

发布于 2026/07/01

链接:https://blog.xdd.ink/blog/20260701-nextjs-app-router-deep-dive

本文采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处。

评论