Gea — Lightweight Reactive UI Framework
https://geajs.com/
摘要
新型JavaScript UI框架,声称是最快的编译型UI框架。零概念设计,无需学习signals、hooks、依赖数组或编译器指令,直接使用普通JavaScript类和函数,编译器在构建时完成响应式转换。
核心亮点
- 零概念设计:无signals、hooks、dependency arrays或编译器指令,你已经知道全部API — 就是JavaScript类和函数
- 编译时响应式:Vite插件在构建时分析JSX,判断哪些DOM节点依赖哪些状态,生成精确的补丁更新
- 无虚拟DOM:更新直接作用于变化的元素,无需diffing和reconciliation,无开销,直接DOM突变,编译时生成
- 基于Proxy的存储:状态存在于普通类中,由深度Proxy包装,直接修改属性即可,数组方法和嵌套对象都能正常工作
- 完整工具包:内置客户端路由、35+可访问UI组件、移动端原语、VS Code扩展和项目脚手架
- 极小体积:~13kb gzipped(含路由),~10kb不含路由,零运行时依赖
- AI就绪:内置代理技能,教Cursor、Codex和其他AI助手完整的Gea API
Benchmark 性能
vanillajs
1.02
Gea 1.0
1.03
Solid 1.9
1.12
Svelte 5
1.14
Vue 3.6
1.26
React 19.2
1.50
越低越好(1.00 = 最快)。来自 js-framework-benchmark 加权几何平均
示例代码
// Store就是类
class CounterStore extends Store {
count = 0
increment() { this.count++ }
decrement() { this.count-- }
}
export default new CounterStore()
// Component就是类或函数
import { Component } from '@geajs/core'
import store from './store'
export default class Counter extends Component {
template() {
return (
<div class="counter">
<span>{store.count}</span>
<button click={store.increment}>+</button>
<button click={store.decrement}>-</button>
</div>
)
}
}
核心洞察
"JavaScript就够了 — 用普通类写,编译器完成响应式转换"