2024-2025 年,一批 AI 驱动的代码生成工具横空出世,它们被笼统称为「低代码」或「vibe coding」工具。与传统低代码(Retool、Bubble、OutSystems)不同,这些新工具的核心范式是:
它们不是「拖拽式可视化编程」,而是 用自然语言驱动代码生成,生成的是真实的、可读的、可维护的源代码——不是黑盒运行时。这是本质区别。
| 维度 | 传统低代码 (Bubble/Retool) | AI 代码生成 (v0/Bolt/Lovable) |
|---|---|---|
| 产出物 | 平台专属格式,锁定 | 标准源代码 (React/Next.js),可迁移 |
| 控制粒度 | 受限于组件和配置 | 任意修改,完全控制 |
| 学习曲线 | 需学平台特定概念 | 需会阅读代码,但不必从零写 |
| 可维护性 | 依赖平台存活 | 代码属于你,可自由演进 |
| 天花板 | 受平台能力限制 | 理论上无限(代码即代码) |
| 典型场景 | 内部工具、简单 CRUD | 原型→产品、快速 MVP |
定位:从 UI 组件到全栈应用的 AI 生成器,与 Vercel 生态深度绑定
Next.js React Tailwind CSS shadcn/ui Vercel
| 计划 | 价格 | 包含 |
|---|---|---|
| Free | $0 | 有限生成次数 |
| Pro | $20/月 | 更多生成 + 高级功能 |
| Enterprise | 定制 | SSO + 合规 |
定位:全栈 AI 构建器,浏览器内运行完整开发环境,强调「大项目也能搞定」
React Vite TypeScript Tailwind Node.js (WebContainer)
| 计划 | 价格 | 包含 |
|---|---|---|
| Free | $0 | 有限制的基础功能 |
| Pro | $20/月 | 更多 token + 高级功能 |
| Team | $30/人/月 | 协作 + 设计系统 |
定位:最简洁的 AI App Builder——「说一句,做一个」,强调产品感和体验
React Vite Tailwind Supabase
定位:AI 原生 IDE——在编辑器内深度集成 AI,不是替代编程,而是增强编程
.cursorrules)任意语言/框架 VS Code 兼容 本地优先
| 计划 | 价格 | 包含 |
|---|---|---|
| Free | $0 | 基础功能 + 有限 Pro 请求 |
| Pro | $20/月 | 无限 Pro 请求 + 优先模型 |
| Business | $40/人/月 | 管理 + 隐私模式 |
定位:AI 原生 IDE,与 Cursor 竞争,强调「Flow」——AI 和人无缝协作
| 维度 | v0 | Bolt | Lovable | Cursor | Windsurf |
|---|---|---|---|---|---|
| 类型 | Web Builder | Web Builder | Web Builder | AI IDE | AI IDE |
| 零到一速度 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 代码控制度 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 长期可维护 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 后端能力 | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 部署便利 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ |
| 非技术友好 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐ | ⭐ |
| 技术栈自由 | ❌ Next.js | ❌ React | ❌ React | ✅ 任意 | ✅ 任意 |
| 代码库理解 | ❌ 单项目 | ❌ 单项目 | ❌ 单项目 | ✅ 完整索引 | ✅ 完整索引 |
| 团队协作 | ⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 价格起点 | 免费 | 免费 | 免费 | 免费 | 免费 |
48 小时内从想法到可点击原型,用于验证假设或融资 Demo
推荐:Bolt > Lovable > v0
Admin Dashboard、数据面板、运营工具——不需要极致定制
推荐:v0 > Bolt > Lovable
营销落地页、产品介绍页——美观优先,逻辑简单
推荐:v0 > Lovable > Bolt
让 AI 生成一个完整实现,学习其架构和模式
推荐:Cursor > v0 > Bolt
已有项目,用 AI 加速特定模块开发(写 CRUD、生成测试)
推荐:Cursor > Windsurf
限时开发,速度优先,后续可丢弃
推荐:Bolt > Lovable > v0
支付处理、身份认证核心逻辑、加密实现——AI 生成代码可能引入安全漏洞,必须人工审查每个细节
AI 擅长生成功能代码,但不擅长优化性能——数据库查询优化、缓存策略、并发控制需要人类架构师
多状态机、复杂权限、工作流引擎——AI 容易生成「看起来对但边界情况有问题」的代码
完全由 AI 生成的代码库长期难以维护——因为团队没有逐行理解的认知过程。混合模式更好
HIPAA、SOX、PCI-DSS 合规系统——需要可追溯的代码审查流程,AI 生成代码的审计性不足
你的需求是什么?
│
├─ 从零开始,尽快看到结果
│ ├─ 只需前端/UI?
│ │ └─ ✅ v0 (Next.js) 或 Lovable (React)
│ └─ 需要后端+数据库?
│ ├─ 简单 CRUD → ✅ Bolt 或 Lovable + Supabase
│ └─ 复杂后端 → ❌ 用 Cursor 手写
│
├─ 已有代码库,需要加速
│ ├─ 单文件修改 → ✅ Cursor Inline Edit (⌘K)
│ ├─ 跨文件重构 → ✅ Cursor Composer
│ └─ 需要自主 Agent → ✅ Windsurf Cascade
│
├─ 团队协作
│ ├─ 全栈团队 → ✅ Cursor Business
│ ├─ 有非技术成员 → ✅ Bolt + 开发者协助
│ └─ 纯开发团队 → ✅ Cursor 或 Windsurf
│
└─ 不确定 / 探索阶段
└─ ✅ 先用 Bolt/Lovable 快速验证
验证通过 → 迁移代码到 Cursor 深度开发
向 v0 输入:"创建一个 SaaS Dashboard,包含用户统计、收入图表、最近活动列表"
// v0 典型生成结构 (Next.js + shadcn/ui)
// app/dashboard/page.tsx
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { BarChart, Bar, XAxis, YAxis, CartesianGrid } from "recharts"
// ⚠️ 注意:v0 倾向于生成客户端组件
// 对于数据获取,建议改为 Server Component
export default function DashboardPage() {
const stats = [
{ title: "Total Users", value: "2,350", change: "+12%" },
{ title: "Revenue", value: "$45,231", change: "+8.2%" },
{ title: "Active Now", value: "573", change: "+2.1%" },
]
return (
<div className="grid gap-4 md:grid-cols-3">
{stats.map((stat) => (
<Card key={stat.title}>
<CardHeader>
<CardTitle className="text-sm font-medium">
{stat.title}
</CardTitle>
</CardHeader>
<CardContent>
<div className="text-2xl font-bold">{stat.value}</div>
<p className="text-xs text-muted-foreground">
{stat.change} from last month
</p>
</CardContent>
</Card>
))}
</div>
)
}
在 Cursor 中用 Composer 生成带认证的 API 路由:
# .cursorrules — 告诉 Cursor 你的项目规范
- 使用 Next.js App Router
- 数据库用 Drizzle ORM + PostgreSQL
- 认证用 NextAuth.js
- API 路由遵循 RESTful 风格
- 所有 response 包含 { success, data?, error? }
- 错误用 http-errors 包
# Composer 对话
"创建 /api/users 路由,支持 GET(列表+分页)和 POST(创建),
需要登录,GET 需要 admin 角色,POST 需要 email 验证"
# Cursor 生成 3 个文件:
# 1. app/api/users/route.ts — 主路由
# 2. lib/validators/user.ts — Zod schema
# 3. lib/services/user.ts — 业务逻辑
// 生成的 app/api/users/route.ts
import { NextRequest, NextResponse } from "next/server"
import { auth } from "@/lib/auth"
import { userListSchema, userCreateSchema } from "@/lib/validators/user"
import { getUsers, createUser } from "@/lib/services/user"
export async function GET(req: NextRequest) {
const session = await auth()
if (!session?.user) {
return NextResponse.json(
{ success: false, error: "Unauthorized" }, { status: 401 }
)
}
if (session.user.role !== "admin") {
return NextResponse.json(
{ success: false, error: "Forbidden" }, { status: 403 }
)
}
const { searchParams } = req.nextUrl
const parsed = userListSchema.safeParse({
page: searchParams.get("page") ?? "1",
limit: searchParams.get("limit") ?? "20",
})
if (!parsed.success) {
return NextResponse.json(
{ success: false, error: parsed.error.flatten() },
{ status: 400 }
)
}
const users = await getUsers(parsed.data)
return NextResponse.json({ success: true, data: users })
}
export async function POST(req: NextRequest) {
const session = await auth()
if (!session?.user) {
return NextResponse.json(
{ success: false, error: "Unauthorized" }, { status: 401 }
)
}
const body = await req.json()
const parsed = userCreateSchema.safeParse(body)
if (!parsed.success) {
return NextResponse.json(
{ success: false, error: parsed.error.flatten() },
{ status: 400 }
)
}
const user = await createUser(parsed.data)
return NextResponse.json(
{ success: true, data: user }, { status: 201 }
)
}
向 Bolt 描述:"创建一个待办事项应用,支持用户注册登录、创建/完成/删除任务、分类管理"
// Bolt 典型生成 — 完整的前后端
// 倾向于生成较多辅助代码(类型、工具函数等)
// 优点:开箱即用 缺点:可能过度工程化
// bolt 生成的项目结构:
// src/
// components/
// TodoList.tsx
// TodoItem.tsx
// CategoryFilter.tsx
// AuthForm.tsx
// hooks/
// useTodos.ts
// useAuth.ts
// services/
// api.ts
// auth.ts
// types/
// index.ts
// utils/
// helpers.ts
// App.tsx
// main.tsx
// 注意:Bolt 的 WebContainer 内可即装即跑
// 但生成的代码风格可能不一致——因为不同轮次可能用不同模式
真正的生产力提升不是「全用 AI」或「全手写」,而是在正确阶段用正确工具:
| 阶段 | 推荐工具 | 模式 | 产出 |
|---|---|---|---|
| 想法验证 Day 1-3 |
Bolt / Lovable | AI 全生成 | 可点击原型,验证假设 |
| MVP 构建 Week 1-4 |
v0 + Cursor | AI 生成 + 人工审查 | 可部署的最小产品 |
| 产品迭代 Month 2+ |
Cursor / Windsurf | AI 辅助 + 人工主导 | 健壮的可维护代码 |
| 规模化 Month 6+ |
Cursor + CI/CD | 人工主导 + AI 局部加速 | 企业级代码库 |
🔍 AI 代码审查清单 ━━━━━━━━━━━━━━━━━━━━ □ 安全性:是否有注入、硬编码密钥、不安全的数据处理? □ 边界情况:空值、超长输入、并发、权限检查 □ 性能:N+1 查询、不必要的重渲染、内存泄漏 □ 可维护性:命名是否清晰?是否有过度抽象? □ 一致性:是否符合项目代码风格和架构决策? □ 测试:是否有对应测试?测试是否真正验证了行为? □ 依赖:是否引入了不必要的包? □ 错误处理:是否有适当的 try/catch 和用户友好提示?
「Vibe Coding」——纯靠自然语言描述让 AI 写代码——看似美好,实则暗坑不少:
AI 生成的代码看起来正确,但可能存在逻辑错误。你不会审查你「觉得对」的代码——这是最危险的。示例:AI 生成的权限检查只验证了用户是否登录,没有验证是否有权访问特定资源。
AI 倾向于生成解决眼前问题的代码,缺乏长期架构思考。每次修修补补,技术债快速累积——到某个临界点,修改一个功能要改 10 个文件。
v0 绑定 Vercel,Lovable 绑定 Supabase,Bolt 绑定 Bolt Cloud。一开始省事,后期迁移成本极高。尤其是 Bolt Cloud 的数据库和认证——换掉等于重写。
最隐蔽的风险:你不再理解自己的代码。当 AI 替你写了大部分逻辑,你对系统的心理模型会变模糊。调试时你不知道从何查起——因为你「没写过那段代码」。
AI 生成代码倾向于引入更多依赖——「反正有个包能做这个」。一个简单的日期格式化,可能引入 dayjs + date-fns + moment(不同生成轮次用不同包)。结果:bundle size 爆炸,安全漏洞面增大。
内部工具之王,拖拽+SQL,连接任何数据源
适合:运营后台、客服工具、数据面板
最成熟的 No-Code 平台,可视化逻辑构建
适合:非技术创始人、简单 marketplace
开源 Retool 替代,自托管可选
适合:需要自托管的企业
最早的 AI 编码助手,IDE 插件,行级补全为主
适合:已有代码库,需要快速补全
AI 代码生成工具本质上是特定领域的 Agent——它们有主循环(理解→生成→验证→迭代),有工具(文件操作、终端、浏览器预览),有记忆(对话历史、项目上下文)。
| Agent 概念 | v0/Bolt/Lovable 的实现 | Cursor/Windsurf 的实现 |
|---|---|---|
| 主循环 | 单轮生成 + 迭代修改(类似 Plan-Execute) | ReAct 循环(理解→搜索→编辑→验证) |
| 工具 | 文件写入 + 浏览器预览 + 部署 | 文件编辑 + 终端 + 代码搜索 + Git |
| 记忆 | 对话历史(短期),项目上下文(中期) | 代码库索引(长期)+ 对话历史(短期)+ Rules(持久) |
| 安全 | 沙箱运行,部署审批 | Diff 审查,本地运行(用户控制) |
| 多 Agent | Bolt: 多模型切换 | Cursor: Composer + Chat 分工 |
深入理解 Agent 架构 → Agent 架构模块 | 主循环设计 | 工具系统
📅 Day 1 (0-24h):验证 + 原型
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
09:00 用 Lovable/Bolt 生成 3 个核心页面原型
输入:"项目管理工具,看板视图,拖拽排序,用户登录"
12:00 与潜在用户测试原型,收集反馈
14:00 确定核心功能:看板 + 任务 + 协作
16:00 用 v0 重新生成 UI(更精细控制)
选择 Next.js + shadcn/ui 栈
20:00 v0 生成 Dashboard + 看板页 + 登录页
22:00 导出代码到 GitHub
📅 Day 2 (24-48h):后端 + 集成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
09:00 用 Cursor 打开项目
配置 .cursorrules(项目规范)
10:00 Composer: "添加 NextAuth.js 认证,支持 GitHub/Google"
审查生成代码 → 修改 session 类型
12:00 Composer: "添加 Drizzle ORM,创建 projects/tasks/users 表"
审查 → 修复关系定义
14:00 Composer: "创建 /api/projects 和 /api/tasks REST 路由"
审查 → 添加权限检查
16:00 Inline Edit: 修复看板拖拽逻辑(AI 生成的有 bug)
18:00 连接前端页面和 API
20:00 部署到 Vercel + Supabase
📅 Day 3 (48-72h):打磨 + 上线
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
09:00 Cursor Chat: "帮我写 E2E 测试,覆盖创建项目→添加任务→拖拽排序"
10:00 手写支付集成(不用 AI——安全敏感)
12:00 修复 AI 生成代码的边界情况 bug
14:00 添加错误监控 (Sentry)
16:00 性能优化:AI 生成代码有 N+1 查询,手写 DataLoader
18:00 🚀 上线!
从「一次生成」到「自主 Agent」——工具不再是被动等待指令,而是主动规划任务、调用工具、自我验证。v0 的 "Agentic by default" 和 Bolt 的多 Agent 模式是开端。
不再只是组件库,而是完整品牌规范的 AI 编码——颜色、排版、动效、交互模式,AI 在品牌约束下生成。Bolt 的 Porsche Design System 集成是信号。
v0 越来越像 IDE(加了 Design Mode),Cursor 越来越像 Builder(Composer 生成整个文件)。两者在中间相遇——未来可能是一个统一工具。
AI 生成代码 → AI 审查代码 → AI 修复代码。形成自循环,但人类仍是最终把关者。参考 SWE-agent 的 RetryAgent+Reviewer 模式。
从自然语言到代码的翻译会越来越精确。可能出现「产品 DSL」——用结构化自然语言描述产品,AI 直接生成完整实现。
📋 工具选择检查清单 ━━━━━━━━━━━━━━━━━━━━━━━━━━━ □ 这个项目的预期寿命? → <1 月:Bolt/Lovable → 1-6 月:v0 + Cursor → >6 月:Cursor 为主 □ 我(团队)的代码能力? → 不写代码:Lovable > Bolt → 会读不会写:v0 > Bolt → 能写代码:Cursor > Windsurf □ 是否需要自定义部署? → 只需上线:Bolt Cloud / Vercel → 需要自定义:Cursor + 手动部署 □ 后端复杂度? → CRUD + 认证:Bolt/Lovable + Supabase → 复杂逻辑:Cursor 手写 □ 安全/合规要求? → 低:任意工具 → 高:Cursor + 严格代码审查 □ 是否已有代码库? → 没有:从 v0/Bolt 开始 → 有:Cursor/Windsurf □ 预算? → $0:免费额度 + 开源工具 → $20/月:任选一个 Pro 计划 → 不限:多工具组合