Skip to content

简介

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中后台

动图演示

  • 双层页签导航

特性

  • 全栈能力: 可在同一个代码库中实现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.

基于 MIT 许可发布