与其他框架对比
本文档将 VonaJS 与其他主流框架(如 Next.js、NestJS 和 Django Admin)进行对比,突出 VonaJS 在全栈开发、后端能力、SSR 支持等方面的优势。
与 Next.js 对比
| 特性 | VonaJS | Next.js |
|---|---|---|
| 全栈机制 | 前后端分离 | 前后端一体 |
| 后端能力 | 强大,可类比于 NestJS/Spring | 一般 |
| Admin 中后台支持 SSR | ✅ | ❌ |
| 双层页签导航 | ✅ | ❌ |
- 全栈机制:VonaJS 采用前后端分离的架构。前端使用 ZovaJS 框架,将构建生成的 JS bundle 放入 VonaJS 后端,在后端直接进行 SSR 渲染
- 后端生成 Swagger/OpenAPI Schema,用于在前端生成 API SDK
- 前端生成图标、路由和组件的类型,用于在后端提供类型提示
- 后端能力:VonaJS 提供了更强大、更完善的后端能力,可以轻松应对大型业务系统的开发,包括
多租户、多数据库、多数据源、二级缓存、队列、广播、定时任务、分布式锁、DTO 动态推断与生成等能力 - Admin 中后台支持 SSR:VonaJS 为
Admin 中后台提供完整的 SSR 支持,刷新页面时侧边栏不会闪烁跳动 - 双层页签导航:VonaJS 支持双层页签导航,实现高效页面切换,并保持页面状态
与 NestJS 对比
| 特性 | VonaJS | NestJS |
|---|---|---|
| 参数校验/OpenAPI | 统一配置 | 存在冗余配置 |
| DTO 动态推断与生成 | ✅ | ❌ |
| 多租户、多数据库、多数据源 | 内置 | 第三方 |
| AOP 编程 | 控制器切面、内部切面、外部切面 | 控制器切面 |
- Zod Schema:VonaJS 基于 Zod4 生成统一的 Schema,可用于
参数校验、Swagger/OpenAPI 文档生成、Form/Table 动态渲染、Response 数据序列化与脱敏处理等多个场景 - DTO 动态推断与生成:VonaJS 提供 DTO 动态推断与生成能力,减少重复的类型定义工作,提升开发效率
- 多租户、多数据库、多数据源:VonaJS 内置多租户、多数据库、多数据源等能力,可以轻松应对大型业务系统的开发
- AOP 编程:VonaJS 提供了更加完善的 AOP 编程能力,包括
控制器切面、内部切面、外部切面。而 NestJS 只实现了控制器切面
什么是控制器切面?
Middleware、Guard、Interceptor、Pipe、Filter 都是为了增强控制器的能力,因此统称为
控制器切面。
与 Django Admin 对比
| 特性 | VonaJS | Django Admin |
|---|---|---|
| 后端技术栈 | NodeJS + TypeScript | Python + 服务端模板语言 |
| 前端技术栈 | ZovaJS + Vue3 + Vite8 + TypeScript | HTML + CSS + JS |
| SSR 机制 | 同构 SSR | 服务端模板渲染 |
| 双层页签导航 | ✅ | ❌ |
- VonaJS 采用前后端分离的架构。前端采用 ZovaJS 框架,界面更美观、代码更简洁,可以更加自由地定制界面,添加新功能
总结
VonaJS 在全栈开发中展现出显著优势,尤其在前后端分离、强大后端能力、SSR 支持和现代化前端技术栈方面。通过与 Next.js、NestJS 和 Django Admin 的对比,可以看出 VonaJS 更适合构建复杂、现代化的全栈应用。