🎯 这是什么

一个开箱即用的前后端分离项目模板。后端使用 GoFrame v2(Go 语言高性能 Web 框架), 前端使用 Nuxt 3(Vue 3 SSR 框架),通过 Docker 容器化部署。

Nuxt Server API 作为反向代理层,前端请求先经过 Nuxt 再转发到 GoFrame 后端, 既解决了跨域问题,又保持了前后端完全解耦。

前端 — Nuxt.js

用户界面 & SSR
  • Nuxt 3 — Vue 3 元框架,支持 SSR / SSG
  • Vue 3 — Composition API + <script setup>
  • Server API — 服务端路由,代理后端请求
  • 热重载 — 修改即时预览,无需手动刷新
  • TypeScript — 全面类型提示,编译期纠错
🔧

后端 — GoFrame

API 服务 & 业务逻辑
  • GoFrame v2 — Go 语言企业级 Web 框架
  • 路由分组 — RESTful 风格,模块化管理
  • 控制器层 — 清晰的 MVC 分层结构
  • 配置管理 — YAML 配置,环境变量覆盖
  • 编译产物 — 单二进制文件,零依赖部署

设计理念

01

前后端解耦

前端和后端独立开发、独立部署、独立扩展,通过 API 契约通信

02

容器化优先

每个服务一个容器,服务名即域名,Docker Compose 一键编排

03

开发体验

热重载、类型安全、清晰的目录结构,降低心智负担

04

生产就绪

SSR 首屏、API 代理、错误处理、环境变量配置,可直接用于生产

项目结构

project/
├── goframe/                    # GoFrame 后端
│   ├── main.go                 # 入口
│   ├── internal/
│   │   ├── cmd/cmd.go          # 路由 + 端口
│   │   └── controller/home.go  # API 控制器
│   ├── manifest/config/        # 配置文件
│   └── go.mod
│
├── frontend/                   # Nuxt 前端
│   ├── pages/
│   │   ├── index.vue           # 首页
│   │   ├── api-demo.vue        # API 演示
│   │   └── about.vue           # 关于
│   ├── server/api/
│   │   ├── ping.ts             # 健康检查
│   │   └── proxy/goframe.ts    # 代理后端
│   └── nuxt.config.ts
│
└── homepage/                   # 原有项目(独立)