83 lines
1.7 KiB
Markdown
83 lines
1.7 KiB
Markdown
# ADR-0002: Next.js 前端框架
|
|
|
|
| 状态 | 接受 |
|
|
|-----|------|
|
|
| 创建日期 | 2026-05-25 |
|
|
| 作者 | 技术团队 |
|
|
|
|
## 上下文
|
|
|
|
我们需要选择一个前端框架来构建 Web 应用和管理后台。我们的需求包括:
|
|
- 良好的 SEO 支持
|
|
- 优秀的开发体验
|
|
- TypeScript 支持
|
|
- 灵活的渲染策略
|
|
- 成熟的生态系统
|
|
|
|
## 决策
|
|
|
|
我们决定使用 **Next.js 16+** 作为前端框架,采用:
|
|
- **App Router**: 新的路由架构
|
|
- **TypeScript**: 类型安全
|
|
- **Tailwind CSS**: 样式方案
|
|
- **Shadcn UI**: UI 组件库
|
|
|
|
## 备选方案
|
|
|
|
### 方案 1: Create React App (CRA)
|
|
|
|
**优点**:
|
|
- 简单易用
|
|
- 社区资源丰富
|
|
|
|
**缺点**:
|
|
- 不支持 SSR/SSG
|
|
- 配置灵活性有限
|
|
- 构建性能一般
|
|
- 官方已不再推荐
|
|
|
|
### 方案 2: Vite + React
|
|
|
|
**优点**:
|
|
- 极快的开发体验
|
|
- 灵活的配置
|
|
- 现代化的工具链
|
|
|
|
**缺点**:
|
|
- 需要自己配置 SSR
|
|
- 生态不如 Next.js 完整
|
|
- 需要更多的手动配置
|
|
|
|
### 方案 3: Remix
|
|
|
|
**优点**:
|
|
- Web 标准优先
|
|
- 优秀的数据加载
|
|
- 边缘部署友好
|
|
|
|
**缺点**:
|
|
- 相对较新
|
|
- 生态较小
|
|
- 国内资源较少
|
|
|
|
## 后果
|
|
|
|
### 正面影响
|
|
|
|
1. **SEO 友好**: 内置 SSR/SSG 支持
|
|
2. **开发体验**: 热重载、零配置
|
|
3. **性能优化**: 自动代码分割、图片优化
|
|
4. **部署方便**: Vercel 及其他云平台的一流支持
|
|
5. **生态成熟**: 大量的插件和集成
|
|
|
|
### 负面影响
|
|
|
|
1. **锁定效应**: 深度依赖 Next.js 生态
|
|
2. **学习曲线**: App Router 有一定学习成本
|
|
3. **版本更新**: 需要关注 Next.js 的频繁更新
|
|
|
|
## 相关链接
|
|
|
|
- [Next.js 文档](https://nextjs.org/docs)
|
|
- [App Router 指南](https://nextjs.org/docs/app)
|