用途:为 Next.js App Router 项目提供开发原则与决策参考,帮助开发者合理选择组件类型、数据获取方式、路由组织与缓存策略。
主要能力: 组件划分:默认使用服务端组件处理数据获取、布局与静态内容;需要 useState、useEffect、事件处理时标记 'use client' 使用客户端组件;两者都需要时采用服务端父组件 + 客户端子组件的拆分方式。 数据获取:默认静态缓存,revalidate 实现 ISR 定时刷新,no-store 实现每次请求动态获取;数据库在服务端组件获取,API 使用 fetch 缓存,用户输入结合客户端状态与 Server Action。 路由约定:page.tsx 路由界面、layout.tsx 共享布局、loading.tsx 加载状态、error.tsx 错误边界、not-found.tsx 404 页面;支持 (name) 路由分组、@slot 并行路由、(. ) 拦截路由。 API 路由:Route Handlers 对应 GET/POST/PUT/PATCH/DELETE;建议用 Zod 校验输入、返回正确状态码、优雅处理错误、尽可能使用 Edge runtime。 性能与元数据:使用 next/image 并为首屏设置 priority、提供模糊占位与响应式尺寸;重型组件动态导入;静态或 generateMetadata 动态元数据,配置 title、description、Open Graph 图片与 canonical。 缓存与 Server Actions:可控制请求层、数据层与整路由缓存,支持基于时间或 revalidatePath/revalidateTag 的按需刷新;Server Actions 用于表单提交、数据变更与触发刷新,标记 'use server' 并校验输入。
使用方式:本条目为原则性指南,未提供具体安装命令或代码示例;请结合项目实际按上述约定落地。
限制:资料未提供版本要求、依赖清单、收费信息与具体平台支持细节;反模式部分提醒避免处处使用 'use client'、在客户端组件中获取数据、忽略加载与错误状态、产生过大客户端包。