Files
qiming/qiming-xagi-frontend-templates/packages/react-next/.cursorrules
2026-06-01 13:43:09 +08:00

155 lines
4.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Next.js 14 AI开发规则
## 项目信息
- 框架: Next.js 14 + React 18
- 路由: App Router
- 语言: TypeScript
- 样式: Tailwind CSS
- HTTP客户端: Axios
- 包管理: pnpm (强制要求)
- 渲染: Server Components (默认) + Client Components
## 代码规范
1. 使用Next.js 14 App Router
2. TypeScript严格模式
3. 优先使用Server Components
4. 必要时使用Client Components ('use client')
5. 遵循React 18最佳实践
6. 使用Tailwind CSS进行样式设计
## 组件开发规则
- 默认使用Server Components
- 需要状态或效果时使用Client Components
- 组件文件使用PascalCase命名
- 使用TypeScript类型定义
- 组件props必须定义类型
- 使用React.memo优化客户端组件
- 合理拆分组件,保持单一职责
## Server Components规则
1. 默认所有组件都是Server Components
2. 不能使用useState, useEffect等客户端钩子
3. 不能使用浏览器API
4. 适合静态内容、SEO优化内容
5. 直接访问数据库和文件系统
## Client Components规则
1. 在文件顶部添加'use client'
2. 可以使用所有React Hooks
3. 可以访问浏览器API
4. 适合交互性强的功能
5. 事件处理和状态管理
## 数据获取规则
1. Server Components: 直接在组件中获取数据
2. Client Components: 使用useEffect或自定义hooks
3. 使用async/await语法
4. 实现加载状态和错误处理
5. 考虑数据缓存策略
## 路由和布局规则
1. 使用App Router目录结构
2. 每个文件夹代表一个路由段
3. page.tsx作为页面入口
4. layout.tsx定义布局
5. template.tsx定义模板
6. 使用parallel和intercepting routes
## API Routes规则
1. 在app/api目录下创建API Routes
2. 使用Next.js API Route处理程序
3. 实现RESTful API设计
4. 添加类型定义和验证
5. 实现错误处理中间件
## 性能优化规则
1. 使用Server Components减少客户端JavaScript
2. 实现静态生成(SSG)和增量静态再生成(ISR)
3. 使用Next.js图片优化组件
4. 实现代码分割和懒加载
5. 优化字体加载
6. 使用React.memo和useMemo
## SEO优化规则
1. 使用Metadata API
2. 实现结构化数据
3. 优化页面标题和描述
4. 实现面包屑导航
5. 使用语义化HTML
6. 优化图片Alt文本
## 样式开发规则
1. 优先使用Tailwind CSS
2. 使用CSS Modules必要时
3. 响应式设计优先
4. 使用CSS变量自定义主题
5. 优化CSS加载性能
## 文件结构规则
```
src/
├── app/ # App Router
│ ├── globals.css # 全局样式
│ ├── layout.tsx # 根布局
│ ├── page.tsx # 首页
│ ├── api/ # API Routes
│ └── [route]/ # 路由页面
├── components/ # 组件目录
│ ├── ui/ # 基础UI组件
│ └── [feature]/ # 功能组件
└── lib/ # 工具库
├── api.ts # HTTP客户端
├── services.ts # API接口
└── utils.ts # 工具函数
```
## 类型定义规则
1. 为所有API响应定义类型
2. 为组件props定义接口
3. 为数据库模型定义类型
4. 使用泛型提升代码复用性
5. 创建全局类型定义文件
## 错误处理规则
1. 使用error.js文件处理错误
2. 实现全局错误边界
3. API调用添加错误处理
4. 提供用户友好的错误信息
5. 实现错误日志记录
## 安全规则
1. 实现CSRF保护
2. 输入验证和清理
3. 安全的API密钥管理
4. 实现权限验证
5. 防止XSS攻击
## Git提交规则
```
feat: 新功能
fix: 修复bug
docs: 文档更新
style: 代码格式化
refactor: 重构
test: 测试相关
chore: 构建过程或辅助工具的变动
perf: 性能优化
ci: CI/CD相关
```
## AI开发提示
- 优先考虑Server Components
- 合理使用Client Components
- 遵循Next.js 14最佳实践
- 考虑性能和SEO优化
- 保持代码风格一致
- 使用TypeScript提升代码质量
- 实现良好的错误处理
## 包管理规则
1. 必须使用 pnpm 作为包管理器
2. 使用 pnpm workspace 协议引用内部依赖
3. 依赖安装: `pnpm install`
4. 开发服务器: `pnpm dev`
5. 构建: `pnpm build`
6. 使用 monorepo 模式管理项目依赖