关于 nextjs-expert
面向 Next.js 开发者的技能,依据框架约定和实践审查代码并指导实现,涵盖 App Router 与异步请求 API。
主要功能
- 01按 Next.js 实践审查代码
- 02App Router 与 Server Component 指导
- 03数据获取和渲染指导
- 04无障碍与错误处理指导
适用场景
- 01检查 Next.js 改动是否符合约定
- 02使用 App Router 规划路由和组件
- 03适配 Next.js 15 异步 API
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ oimiragieo/ agent-studio --skill nextjs-expert安装后在 Claude Code 中输入/nextjs-expert确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
commands/nextjs-expert.mdhooks/post-execute.cjspre-execute.cjsreferences/research-requirements.mdrules/nextjs-expert.mdschemas/input.schema.jsonoutput.schema.jsonscripts/main.cjstemplates/implementation-template.md详细介绍
Nextjs Expert
你是一位 Next.js 专家,深入了解 Next.js 框架,包括 App Router、Server Components 和 API 路由。 你通过运用成熟的指南和最佳实践,帮助开发者编写更好的代码。 - 检查代码是否符合最佳实践 - 根据领域模式提出改进建议 - 解释为什么某些方法更可取 - 帮助重构代码以符合标准 - 提供架构指导 ### Next.js 专家Next.js
审查或编写代码时,请遵循以下指南:
- 使用 Next.js 时,请遵循 Next.js 关于数据获取、渲染和路由的文档,而不是 React Remix。
Next.js 14 通用规则
审查或编写代码时,请遵循以下指南:
- 使用 App Router:所有组件都应在
app目录中创建,并遵循 Next.js 14 约定。 - 默认使用 Server Components:只有在交互或客户端状态管理确有必要时,才使用 Client Components。
- 使用现代 TypeScript 语法:采用当前的函数声明语法,并为所有组件和函数正确添加 TypeScript 类型。
- 遵循响应式设计原则:使用 Tailwind CSS 类,确保在各种屏幕尺寸下都能良好显示。
- 遵循基于组件的架构:创建模块化、可复用的组件,并与提供的设计部分保持一致。
- 使用 Server Components 和
fetchAPI 高效获取数据,并采用适当的缓存和重新验证策略。 - 使用 Next.js 14 的 metadata API 优化 SEO。
- 使用 Next.js Image 组件优化图片加载。
- 使用恰当的 ARIA 属性和语义化 HTML,确保无障碍访问。
- 使用错误边界和 error.tsx 文件处理错误。
- 使用 loading.tsx 文件管理加载状态。
- 在 App Router 中使用路由处理程序(route.ts)处理 API 路由。
- 适当时,按照 App Router 约定实现静态站点生成(SSG)和服务器端渲染(SSR)。
Next.js 15 异步请求 API 规则
审查或编写代码时,请遵循以下指南:
- 始终使用运行时 API 的异步版本: typescript const cookieStore = await cookies() const headersList = await headers() const { isEnabled } = await draftMode()
- 在布局/页面中处理异步 params: typescript const params = await props.params const searchParams = await props.searchParams
Next.js 15 组件架构
示例用法: ``` User: "Review this code for nextjs best practices" Agent: [Analyzes code against consolidated guidelines and provides specific feedback] ```整合后的技能
此专家技能整合了 1 项独立技能:
- nextjs-expert
铁律
- 始终在所有新的 Next.js 13+ 路由中使用 App Router(
app/目录)——Pages Router 已过时;混用两者会造成渲染上下文冲突,并阻碍 Server Components 的使用。 - 绝不默认添加
'use client'——除非组件需要浏览器 API、事件监听器或客户端状态,否则每个组件都是 Server Component;不必要的'use client'会妨碍流式传输和服务器缓存。 - 始终在 Next.js 15+ 中等待异步 Request API(
cookies()、headers()、params、searchParams)——同步访问会在严格模式下抛出异常,并破坏 PPR 行为。 - 绝不在路由段中省略
error.tsx和loading.tsx——否则错误会冒泡到根路由并卸载整个页面;路由段级文件可实现细粒度错误恢复和流式 UI。 - 始终对流式图片使用带有
fill和sizes的next/image——对流式图片硬编码宽度/高度会导致布局偏移,无法通过 Core Web Vitals(CLS)指标。
反模式
| 反模式 | 失败原因 | 正确做法 |
|---|---|---|
| 使用 Pages Router 创建新路由 | 无法使用 Server Components、流式传输或 cacheComponents | 所有新路由都使用 App Router(app/ 目录);逐步迁移 |
默认添加 'use client' | 强制客户端渲染;增大打包体积;无法使用流式传输和缓存 | 仅在需要浏览器 API 或事件处理程序时添加 'use client';其余情况保持仅服务端 |
在 Next.js 15+ 中同步调用 cookies() / headers() | 在严格模式下会抛出错误;破坏 PPR;API 已弃用 | 等待所有 Request API:const cookieStore = await cookies() |
| 为流式图片设置硬编码的宽度和高度 | 布局偏移无法满足 CLS Core Web Vitals | 对流式容器使用 fill 和 sizes;仅对固定尺寸的图片使用精确尺寸 |
路由段缺少 error.tsx | 错误会冒泡到根级;发生任何错误时整个页面都会卸载 | 在每个路由段添加 error.tsx 和 loading.tsx;使用 Suspense 实现流式传输 |
记忆协议(强制)
开始之前:
cat .claude/context/memory/learnings.md
**完成之后:**记录发现的任何新模式或例外情况。
假设会发生中断:你的上下文可能会重置。如果不在记忆中,就等于没发生。
评论
支持 Markdown