mcpField
W
web-nextjs

web-nextjs

github.com/alphaonedev开发53 次安装
代码仓库

关于 web-nextjs

面向 Next.js 15 Web 应用开发与部署的技能,涵盖 App Router、服务器端逻辑和多种渲染策略,适用于需要 SEO 和动态数据处理的 React 项目。

主要功能

  1. 01使用 App Router 组织路由
  2. 02通过 Server Actions 执行服务端变更
  3. 03支持 ISR、SSG 和 SSR 渲染策略
  4. 04使用 Middleware 处理认证或重定向
  5. 05通过 Turbopack 加快开发迭代
  6. 06使用 Vercel CLI 部署

适用场景

  1. 01构建支持静态生成的博客
  2. 02开发需要服务端渲染的电商网站
  3. 03为动态数据页面配置增量静态再生成
  4. 04添加登录状态检查和重定向

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill web-nextjs

安装后在 Claude Code 中输入/web-nextjs确认已加载。

详细介绍

web-nextjs

用途

此技能提供使用 Next.js 15 构建和部署 Web 应用的专业知识,重点介绍 App Router、服务器操作和优化渲染策略等现代功能。

适用场景

适用于需要快速、对 SEO 友好的 React 应用且包含服务器端逻辑的项目;非常适合需要 SSR 的电商网站、采用 SSG 的博客或采用 ISR 的动态应用;对于使用纯 React 即可满足需求的简单静态网站,则不建议使用。

主要功能

  • App Router:支持在 /app 目录中进行基于文件的路由管理,便于组织;示例:使用 app/about/page.jsx 创建路由。
  • 服务器操作:无需 API 路由即可在服务器上执行变更;在表单中将其定义为异步函数,例如在组件中使用 'use server' 指令。
  • ISR/SSG/SSR:在服务器操作中通过 revalidatePath() 配置 ISR;使用 getStaticProps 配置 SSG;使用 getServerSideProps 动态获取数据并配置 SSR。
  • 中间件:在 middleware.js 中编写边缘函数,以处理身份验证或重定向,例如在页面加载前检查用户会话。
  • Turbopack:通过增量打包加快开发速度;在 next.config.js 中通过 experimental: { turbopack: true } 启用。
  • Vercel 部署:通过 Vercel CLI 零配置部署应用;支持通过 Webhook 自动使 ISR 缓存失效。

使用模式

要构建 Next.js 应用,首先创建项目:运行 npx create-next-app@latest my-app --typescript,然后进入 /app 目录配置路由。对于服务器操作,在表单中导入并使用:例如,在组件中添加 async function addItem() { 'use server'; await db.insert(item); }。通过从页面导出 getServerSideProps 来实现 SSR:export async function getServerSideProps() { const data = await fetchData(); return { props: { data } }; }。对于 ISR,在操作中使用 revalidate:例如,更新内容后调用 revalidatePath('/posts')。示例 1:使用 SSG 构建博客——创建 app/posts/[id]/page.jsx,并通过 getStaticProps 获取文章,然后运行 next build 生成静态输出。示例 2:添加身份验证中间件——创建 middleware.js,并写入 export function middleware(request) { if (!request.cookies.token) return NextResponse.redirect('/login'); },然后使用 next dev 进行测试。

常用命令/API

  • 创建项目:运行 npx create-next-app@latest my-app --app 以使用 App Router;添加 --typescript 以支持 TypeScript。
  • 开发服务器:运行 next dev --port 3001,在指定端口启动并启用热重载。
  • 构建和部署:运行 next build 进行生产构建,然后使用 vercel --prod 部署;使用 Vercel API 端点,例如 POST https://api.vercel.com/v13/now/deployments?teamId=$VERCEL_TEAM_ID,并在 JSON 请求体中传入 { "name": "my-app" }。
  • API 路由:在 app/api/route.js 中定义,例如 export async function GET(request) { const data = await fetch('https://api.example.com'); return Response.json(data); }。
  • 配置格式:编辑 next.config.js 设置自定义选项,例如 module.exports = { images: { domains: ['example.com'] }, experimental: { appDir: true } }; 使用 .env.local 设置环境变量,例如 NEXT_PUBLIC_API_URL="https://api.example.com"。
  • Turbopack 命令:在 next.config.js 中启用,然后运行 next dev 以加快迭代速度。

集成说明

通过 Prisma 集成 PostgreSQL 等数据库:安装 @prisma/client,运行 npx prisma migrate dev,然后在服务器操作中使用环境变量 $DATABASE_URL 配置连接字符串。对于身份验证,使用 NextAuth.js:安装 next-auth,在 [...nextauth].js 中进行配置,并在 .env 中设置 $NEXTAUTH_SECRET;示例:import NextAuth from 'next-auth'; export default NextAuth({ providers: [] })。通过添加包含 { "routes": [{ "src": "/api/(.*)", "dest": "/api/$1" }] } 的 vercel.json,将项目连接到 Vercel 以实现 CI/CD。如果需要 API 密钥,请将其存储为环境变量,例如 $STRIKE_API_KEY,并在组件中通过 process.env.STRIKE_API_KEY 访问。

错误处理

通过创建 app/404.js 并添加自定义页面来处理 404 错误:export default function NotFound() { return

404 - Page Not Found

; }。在组件中使用错误边界:用 <ErrorBoundary fallback={
Error occurred</div}> 包裹;在 App Router 中,为每个路由添加 error.js 文件。对于构建错误,请检查 next.config.js 中是否存在配置错误;常见的修复方法是确保服务器组件中的所有导入都正确。运行 next build --debug 并检查日志,以调试 SSR 问题;对于 API 错误,请在操作中使用 try/catch,例如:try { await fetchData(); } catch (error) { console.error(error.message); return NextResponse.json({ error: 'Fetch failed' }, { status: 500 }); }。

图关系

  • 与集群相关:web-dev(例如,与 frontend-react 等其他 web-dev 技能共享资源)。
  • 通过标签关联:nextjs(链接到高级 React 技能)、react(与状态管理工具集成)、fullstack(与 backend-node 技能有重叠)、web(连接到 deployment-vercel 技能)。

评论

支持 Markdown