关于 nextjs
nextjs 是一套用于编写或审查 Next.js 代码的实践规则,面向开发者和编码 Agent。内容按文件约定、组件边界、数据模式和错误处理等主题组织,并覆盖 Next.js 15+ 的异步 API 变化。
主要功能
- 01文件与路由约定
- 02React Server Component 边界检查
- 03Next.js 15+ 异步模式
- 04运行时选择与指令用法
- 05数据获取及错误处理规则
- 06元数据、图像与打包建议
适用场景
- 01审查 Next.js 项目代码
- 02实现路由和数据获取逻辑
- 03排查水合或组件边界问题
- 04迁移到 Next.js 15+ 异步 API
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openai/ plugins --skill nextjs安装后在 Claude Code 中输入/nextjs确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/app-router-files.mdasync-patterns.mdbundling.mddata-patterns.mddebug-tricks.mddirectives.mderror-handling.mdfile-conventions.mdfont.mdfunctions.mdhydration-error.mdimage.mdmetadata.mdparallel-routes.mdroute-handlers.mdrsc-boundaries.mdruntime-selection.mdscripts.mdself-hosting.mdsuspense-boundaries.md详细介绍
Next.js 最佳实践
编写或审查 Next.js 代码时,请遵循这些规则。
文件约定
请参阅 file-conventions.md,了解:
- 项目结构和特殊文件
- 路由段(动态、捕获所有、分组)
- 并行路由和拦截路由
- v16 中间件重命名(middleware → proxy)
RSC 边界
检测无效的 React Server Component 模式。
请参阅 rsc-boundaries.md,了解:
- 异步客户端组件检测(无效)
- 不可序列化属性检测
- Server Action 例外情况
异步模式
Next.js 15+ 异步 API 的变更。
请参阅 async-patterns.md,了解:
- 异步
params和searchParams - 异步
cookies()和headers() - 迁移 codemod
运行时选择
请参阅 runtime-selection.md,了解:
- 默认使用 Node.js 运行时
- 适合使用 Edge 运行时的情况
指令
请参阅 directives.md,了解:
'use client'、'use server'(React)'use cache'(Next.js)
函数
请参阅 functions.md,了解:
- 导航钩子:
useRouter、usePathname、useSearchParams、useParams - 服务端函数:
cookies、headers、draftMode、after - 生成函数:
generateStaticParams、generateMetadata
错误处理
请参阅 error-handling.md,了解:
error.tsx、global-error.tsx、not-found.tsxredirect、permanentRedirect、notFoundforbidden、unauthorized(身份验证错误)- 在 catch 块中使用
unstable_rethrow
数据模式
请参阅 data-patterns.md,了解:
- Server Components、Server Actions 与 Route Handlers 的区别
- 避免数据瀑布(
Promise.all、Suspense、预加载) - 客户端组件的数据获取
路由处理程序
请参阅 route-handlers.md,了解:
route.ts基础知识- GET 处理程序与
page.tsx的冲突 - 环境行为(无 React DOM)
- 何时使用 Route Handlers 而非 Server Actions
元数据和 OG 图像
请参阅 metadata.md,了解:
- 静态和动态元数据
generateMetadata函数- 使用
next/og生成 OG 图像 - 基于文件的元数据约定
图像优化
请参阅 image.md,了解:
- 始终使用
next/image,而非<img> - 远程图像配置
- 响应式
sizes属性 - 模糊占位符
- 为 LCP 优先加载
字体优化
请参阅 font.md,了解:
next/font设置- Google Fonts、本地字体
- Tailwind CSS 集成
- 预加载子集
打包
请参阅 bundling.md,了解:
- 与服务端不兼容的包
- CSS 导入(而非 link 标签)
- Polyfill(已包含)
- ESM/CommonJS 问题
- 包分析
脚本
请参阅 scripts.md,了解:
next/script与原生 script 标签的区别- 内联脚本需要
id - 加载策略
- 使用
@next/third-parties集成 Google Analytics
水合错误
请参阅 hydration-error.md,了解:
- 常见原因(浏览器 API、日期、无效 HTML)
- 使用错误覆盖层进行调试
- 针对各种原因的修复方法
Suspense 边界
请参阅 suspense-boundaries.md,了解:
- 使用
useSearchParams和usePathname时的 CSR 回退 - 哪些钩子需要 Suspense 边界
并行路由和拦截路由
请参阅 parallel-routes.md,了解:
- 使用
@slot和(.)拦截器实现模态框模式 - 使用
default.tsx作为回退 - 使用
router.back()正确关闭模态框
自托管
请参阅 self-hosting.md,了解:
- 用于 Docker 的
output: 'standalone' - 用于多实例 ISR 的缓存处理程序
- 可直接使用的功能与需要额外设置的功能
调试技巧
请参阅 debug-tricks.md,了解:
- 用于 AI 辅助调试的 MCP 端点
- 使用
--debug-build-paths重建特定路由
评论
支持 Markdown