Svelte 团队成员开源新框架 Ripple,又一个想“改写前端”的框架?
创始人
2025-12-17 10:15:10
0

作者 | Bruno Couriol

译者 | 田橙

Ripple 是一款全新的开源前端框架,融合了 React、SolidJS 和 Svelte 的理念,采用 Type 优先的设计思路,以组件为中心,并提供类似 JSX 的编译式语言、细粒度响应式机制以及作用域 CSS。该框架由 Svelte 核心维护者 Dominic Gannaway 打造,其响应式系统支持自动依赖追踪,无需虚拟 DOM 即可直接更新 DOM 节点,同时计划通过 AI 智能代理为开发者提供更高效的调试能力。

import{ Button} from'./Button.ripple'; import{ track } from'ripple'; exportcomponent TodoList({ todos, addTodo }: Props) { <divclass="container"> <h2>{'Todo List'} h2> <ul> for (const todo of todos) { <li>{todo.text} li> } ul> if (todos.length > 0) { <p>{todos.length}{" items"} p> } <ButtononClick={addTodo}label={"AddTodo"} /> div> <style> .container{ text-align: center; font-family: "Arial", sans-serif; } style> } exportcomponent Counter{ letcount = track( 0); letdouble = track( =>@count* 2); <divclass='counter'> <h2>{'Counter'} h2> <p>{"Count: "}{@count} p> <p>{"Double: "}{@double} p> <ButtononClick={=>@count++} label={'Increment'} /> <ButtononClick={=>@count = 0} label={'Reset'} /> div> }

在 Ripple 中,开发者通过组件(例如 TodoList、Counter)来构建界面。组件本质是包含 DOM 表达式语句的函数,语法大量借鉴 Type 与 JSX,同时统一描述界面的标记结构(DOM)、样式(CSS)及交互行为。

界面标记以原生语句形式直接表达,控制流逻辑(例如 if (todos.length > 0)、for (const todo of todos))可以自然穿插在 JSX 风格的结构中。样式默认作用域隔离,仅对当前组件生效。组件行为则由事件处理函数驱动,并依赖细粒度响应系统,使其能像 Svelte 一样精确更新真实 DOM,而非重新计算整个虚拟 DOM。

track 原语用于定义独立响应式变量(如 count),其值通过 @ 运算符读取。计算型响应式变量(如 double)可通过 track( => @count * 2) 声明依赖关系。Ripple 的响应系统会确保这些变量始终保持同步。同时,它也保证 DOM 元素的状态随依赖变化自动更新。例如,点击按钮会让 count 自增,从而同步更新段落中的文本内容。

Gannaway 在 Twitter 上解释道:

Ripple 的响应式系统既不是虚拟 DOM,也不是 signals,而是基于细粒度、惰性求值的机制,它更多依赖编译器而非运行时,实现上述响应式能力。

Ripple 虽然不支持全局状态,但支持 Context,用于在组件间共享必要的应用状态。不过,Context 只能在其闭包范围内的组件使用,并且只能在组件上下文中读写,不能在事件处理器中进行读写操作。

import { Context } from'ripple'; constMyContext = newContext( null); component Child{ // 在子组件中读取 Context constvalue= MyContext. get; console.log( value); // "Hello from context!" } export component Parent{ constvalue= MyContext. get; // 初次读取时尚未设置,回退到初始值 null console.log( value); // 在父组件中设置 Context MyContext. set( "Hello from context!"); }

Ripple 也允许以 effect 将副作用与状态变化关联:

import{ track, effect } from'ripple'; exportcomponent App{ letcount = track( 0); effect( =>{ console. log( @count); }); @count++}>{ 'Increment'} }

Ripple 的目标是为 Web 应用开发者带来更简单的思维模型和更好的开发体验。例如,默认不必使用 useMemo、CSS 自带作用域、没有额外抽象层隔离 DOM 与标记。该语言设计与编译器深度协作,使其能够更好地理解 Type 类型和响应式状态结构,为智能补全、错误检查和工具链打下基础。Ripple 团队也在探索在开发服务器中直接集成 AI 能力,实现主动式调试建议与问题诊断。

Ripple 由 Dominic Gannaway 创建,他曾在 Meta 参与 React Hooks 开发,创建富文本编辑器框架 Lexical,编写过轻量级框架 Inferno,并是 Svelte 5 核心团队成员。虽然 Ripple 已经存在数年,但最近才以 MIT 许可正式开源。目前框架仍处于早期阶段,欢迎社区贡献,并应遵循其贡献指南。

相关内容

如祺出行推出AI数据服务平...
经济观察网 在“Robotaxi+”战略框架下,如祺出行数据业务板...
2026-07-11 22:55:14
助C罗“重返28岁”!AI...
Whoop手环为41岁C罗世界杯表现保驾护航,助其完成梅开二度,带...
2026-07-03 06:52:07
SIGCOMM 2026 ...
论文作者均来自北京大学王选计算机研究所,第一作者为吴将凯博士,第二...
2026-06-26 18:43:57
英特尔开源版图持续收缩:A...
6月13日消息,英特尔正在持续推进其开源项目的收缩。Phoroni...
2026-06-20 18:24:26
全球首次单机降服万亿巨模D...
从数学、代码、复杂推理,到多轮工具调用,大模型的很多能力的提升都离...
2026-05-28 20:34:56
雷军:小米自动驾驶模型Xi...
5月14日消息,小米创办人、董事长兼CEO雷军日前在社交平台发文称...
2026-05-14 17:27:29

热门资讯

全新开源项目公布,让PC Ga... IT之家 8 月 11 日消息,据外媒 TechPowerup 报道,一批曾参与开发 Heroic ...
Flova 接入 Seedan... 最近AI视频行业,有三件事值得展开说说。 第一件:安徽卫视7月22日起在晚间时段首播全AI流程制作的...
AI短剧女主“方桃子”代言美瞳... 近期AI短剧《被裁掉的女孩》女主角“方桃子”,因在短视频平台账号主页发布的作品中植入某美瞳产品广告,...
中文在线携手火山引擎探索AI与... 观点网讯:8月10日,中文在线宣布与火山引擎达成深度业务合作。双方将围绕视频生成模型Seedance...
AI安全测试正在成为新的安全隐... 在过去几个月里,正在接受网络安全评估的AI智能体相继突破限制、访问互联网,甚至在某些情况下入侵了真实...
汤臣倍健(300146)新增【... 证券之星消息,根据市场公开信息整理,8月10日汤臣倍健(300146)新增【AI智能体】概念。 新增...
近200家硅谷初创企业反对限制... 钛媒体App 8月10日,美国一些高级官员公开表示拟对中国人工智能企业开展调查并实施制裁,引起美国业...
国家机构预警Sorry勒索病毒... IT时代网8月10日消息,国家计算机病毒应急处理中心10日通报,依托国家计算机病毒协同分析平台,该中...
每周股票复盘:乐鑫科技(688... 截至2026年8月7日收盘,乐鑫科技(688018)报收于112.06元,较上周的102.7元上涨9...