Next.js16AppRouter性能优化技能Skill nextjs

此技能提供Next.js 16 App Router的全面性能优化指南,涵盖构建优化、缓存策略、服务器组件、路由、SEO等关键领域,帮助前端开发者提升应用性能和效率,适用于Next.js项目开发和性能调优。

前端开发 0 次安装 0 次浏览 更新于 3/18/2026

name: nextjs description: Next.js 16 App Router 性能优化指南(原 nextjs-16-app-router)。此技能应在编写 Next.js 16 代码、配置缓存、在 Next.js 中实现服务器组件、设置 App Router 路由或配置 next.config.js 时使用。此技能不涵盖通用 React 19 模式(使用 react-19 技能)或非 Next.js 的服务器渲染。

Next.js 社区 Next.js 16 App Router 最佳实践

为 Next.js 16 App Router 应用程序提供的全面性能优化指南,由 Next.js 社区维护。包含 8 个类别中的 40 条规则,按影响优先级排序,以指导自动重构和代码生成。

何时应用

在以下情况参考这些指南:

  • 编写新的 Next.js 16 App Router 代码
  • 使用 ‘use cache’ 指令配置缓存策略
  • 实现服务器组件和数据获取
  • 设置并行和拦截路由
  • 创建用于表单处理和变异的服务器动作

规则类别按优先级

优先级 类别 影响 前缀
1 构建与打包优化 关键 build-
2 缓存策略 关键 cache-
3 服务器组件与数据获取 server-
4 路由与导航 route-
5 服务器动作与变异 中高 action-
6 流式与加载状态 stream-
7 元数据与 SEO meta-
8 客户端组件 低中 client-

快速参考

1. 构建与打包优化(关键)

  • build-optimize-package-imports - 为图标库配置 optimizePackageImports
  • build-dynamic-imports - 对重型组件使用动态导入
  • build-barrel-files - 避免在 App Router 中使用桶文件导入
  • build-turbopack-config - 启用 Turbopack 文件系统缓存
  • build-external-packages - 为 Node 依赖配置服务器外部包

2. 缓存策略(关键)

  • cache-use-cache-directive - 使用 ‘use cache’ 指令进行显式缓存
  • cache-revalidate-tag - 使用 revalidateTag 和 cacheLife 配置文件
  • cache-fetch-options - 正确配置获取缓存选项
  • cache-revalidate-path - 使用 revalidatePath 进行路由级缓存失效
  • cache-react-cache - 使用 React cache() 进行请求去重
  • cache-segment-config - 通过导出配置路由段缓存

3. 服务器组件与数据获取(高)

  • server-parallel-fetching - 在服务器组件中并行获取数据
  • server-component-streaming - 流式传输服务器组件以实现渐进加载
  • server-data-colocation - 将数据获取与组件共置
  • server-preload-pattern - 对关键数据使用预加载模式
  • server-avoid-client-fetching - 避免初始数据的客户端获取
  • server-error-handling - 优雅地处理服务器组件错误

4. 路由与导航(高)

  • route-parallel-routes - 使用并行路由处理独立内容
  • route-intercepting-routes - 使用拦截路由实现模态模式
  • route-prefetching - 适当配置链接预取
  • route-proxy-ts - 使用 proxy.ts 处理网络边界逻辑
  • route-not-found - 使用 notFound() 处理缺失资源

5. 服务器动作与变异(中高)

  • action-server-action-forms - 使用服务器动作处理表单提交
  • action-pending-states - 使用 useFormStatus 显示待处理状态
  • action-error-handling - 优雅地处理服务器动作错误
  • action-optimistic-updates - 使用乐观更新提供即时反馈
  • action-revalidation - 变异后重新验证缓存

6. 流式与加载状态(中)

  • stream-suspense-boundaries - 战略性地放置 Suspense 边界
  • stream-loading-tsx - 使用 loading.tsx 处理路由级加载状态
  • stream-error-tsx - 使用 error.tsx 处理路由级错误边界
  • stream-skeleton-matching - 使骨架尺寸与实际内容匹配
  • stream-nested-suspense - 嵌套 Suspense 以实现渐进披露

7. 元数据与 SEO(中)

  • meta-generate-metadata - 使用 generateMetadata 生成动态元数据
  • meta-sitemap - 动态生成站点地图
  • meta-robots - 配置 robots 以控制爬取
  • meta-opengraph-images - 生成动态 OpenGraph 图像

8. 客户端组件(低中)

  • client-use-client-boundary - 最小化 ‘use client’ 边界范围
  • client-children-pattern - 将服务器组件作为子组件传递给客户端组件
  • client-hydration-mismatch - 避免水合不匹配
  • client-third-party-scripts - 高效加载第三方脚本

如何使用

阅读单个参考文件以获取详细解释和代码示例:

相关技能

  • 对于 React 19 基础,参见 react-19 技能
  • 对于数据获取模式,参见 tanstack-query 技能
  • 对于客户端表单,参见 react-hook-form 技能

完整编译文档

对于包含所有规则扩展的完整指南:AGENTS.md