简介
TIP
直播时间:周一至周五晚7:30,欢迎围观:B站: 濮水代码
什么是Vona?
Vona 是一款全栈框架,支持单代码库构建SSR/SPA/Web网站/Admin中后台,采用前后端分离架构,并内置前后端类型共享能力。
- 提供 DTO 动态推断与生成能力,减少重复的类型定义工作,提升开发效率
- 支持双层页签导航,实现高效页面切换,并保持页面状态
- 可动态渲染 CRUD 的列表页、条目页、搜索表单,并且提供了
Tanstack Table/Tanstack Form/Tanstack Query的最佳实践
全栈机制
Vona 采用前后端分离的架构。前端使用 Zova 框架,将构建生成的 JS bundle 放入 Vona 后端,在后端直接进行 SSR 渲染。
前后端类型共享机制:
- 后端生成 Swagger/Openapi Schema,用于在前端生成 Api SDK
- 前端生成图标、路由和组件的类型,用于在后端提供类型提示
在线演示
使用同一套代码实现 Cabloy Store 的Web网站和Admin中后台
- Web 网站:https://cabloy.com
- Admin 中后台:https://cabloy.com/admin
动图演示
- 双层页签导航

特性
全栈能力: 可在同一个代码库中实现SSR/SPA/Web网站/Admin中后台Admin中后台支持SSR: 为Admin中后台应用提供完整的 SSR 支持,侧边栏、多语言、明暗主题、品牌色主题等界面元素均支持 SSR。这样在刷新页面时可显著减少界面跳动,提升用户交互体验CRUD动态渲染: 可动态渲染 CRUD 的列表页、条目页、搜索表单,并且提供了Tanstack Table/Tanstack Form/Tanstack Query的最佳实践DTO动态推断与生成: 提供 DTO 动态推断与生成能力,减少重复的类型定义工作,提升开发效率双层页签导航: 支持双层页签导航,实现高效页面切换,并保持页面状态基于Typescript开发: 提供完备的 Typescript 类型提示全部采用ESM模块: 使项目启动更快文件级别的精确HMR: 让开发体验更丝滑、更高效完备的模块化系统: 以模块为基础对业务进行切分,让代码更内聚,复用与分享更容易IOC容器与依赖查找: 推荐使用依赖查找,直接从容器中获取 Bean 实例,使代码书写更加直观、优雅通用的Bean配置能力: 所有 Bean Class 都可以在 App Config 中修改配置,从而显著提升整个系统的扩展性,也能够节约大量的与配置相关的代码Bean全局单例: 底层采用Async Local Storage实现了完整的全局单例机制,从而让整个系统的内存占用非常低,也能显著改善 gc 的性能多租户: 支持多租户 SAAS 系统的开发,共享数据表架构,但运行中产生的数据是相互隔离的多数据库、多数据源: 支持多数据库、多数据源,还提供了开箱即用的读写分离和动态数据源能力数据库事务: 内置数据库事务能力,支持事务传播机制Cli命令: 提供了大量的 Cli 命令,用于生成各类资源的代码骨架菜单命令: 通过菜单来执行 Cli 命令,从而显著降低心智负担,提升开发体验基于多维变量的配置能力: 基于多维变量加载 Env/Config,从而提供更加灵活的配置机制,支持更复杂的业务场景更完善的AOP编程: 提供了更加完善的 AOP 编程能力,包括控制器切面、内部切面、外部切面练习场: 专门提供了练习场,让我们可以非常方便的进行代码演练
技术栈
通用
| 名称 | 版本 |
|---|---|
| pnpm | >=10.19.0 |
| Nodejs | >=24.8.0 |
| Typescript | >=5.9.3 |
后端(Vona)
| 名称 | 版本 |
|---|---|
| Koa | >=3.0.0 |
| Knex | >=3.1.0 |
| Zod | >=4.1.13 |
| Redis | >=7.2.6 |
| Sqlite3 | 内置 |
| MySQL | >=8 |
| Postgresql | >=16 |
Redis: VonaJS 基于 Redis 提供了以下能力:队列、定时任务、启动项、广播、缓存、二级缓存、分布式锁
Sqlite3: 需要预先准备 node-gyp 环境,确保在安装依赖时可以正常编译出better_sqlite3.node
前端(Zova)
| 名称 | 版本 |
|---|---|
| Vite | >=8.0.0 |
| Vue | >=3.5.6 |
| Vue Router | >=4.4.5 |
| Zod | >=4.1.13 |
| Tanstack Query | >=5.92.5 |
| Tanstack Form | >=1.23.5 |
| Tanstack Table | >=8.21.3 |
UI库
Zova 可以搭配任何 UI 库使用,并且内置了几款 UI 库的项目模版,便于开箱即用。
| 名称 | 版本 |
|---|---|
| Daisyui | >=5.3.2 |
| Tailwindcss | >=4.1.14 |
| Quasar | >=2.18.1 |
| Vuetify | >=4.0.1 |
架构哲学
1. 关于编码
许多框架用最简场景证明设计优雅,却忽略业务复杂性带来的编码挑战。
随着业务增长与变化,项目代码容易迅速劣化、难以维护。
Zova 正视大型业务复杂性,提出一系列工程化解决方案,。
让大型业务系统的代码依然优雅直观,提升开发效率与体验,并更利于后续迭代与维护。
2. 关于性能
许多框架用最简单的案例来证明性能,却忽视了业务复杂性带来的挑战。
随着业务增长,项目性能往往会下降,开发者需要投入大量精力进行优化。
Vona 从框架核心引入缓存策略,内置二级缓存、Query 缓存和Entity 缓存等机制,。
让开发者可以专注业务逻辑,无需复杂优化,代码依然保持优雅和直观。
联系方式
License
MIT License.
Copyright (c) 2016-present, Vona.