fischerX/docs/architecture/design-decisions/0002-nextjs-framework.md

1.7 KiB

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 的频繁更新

相关链接