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 许可正式开源。目前框架仍处于早期阶段,欢迎社区贡献,并应遵循其贡献指南。

相关内容

Svelte 团队成员开源...
作者 | Bruno Couriol 译者 | 田橙 Ripp...
2025-12-17 10:15:10
大数据可视化技术教与学(大...
1 课程的性质和教学目的 2 课程教学内容 第一章数据可视化概述...
2025-12-17 08:46:16
给AI装上细胞之眼:新框架...
近日,中山大学博士生李孟燃和中国科学院香港创新研究院臧泽林博士及合...
2025-12-14 22:16:23
AI哲学之父吴怀宇:AI新...
当人工智能(AI)的浪潮以前所未有的力量重塑社会结构、颠覆传统认知...
2025-12-09 19:16:06
训练效率提升3.5倍!京东...
近日,京东云JoyBuilder模型开发平台迎来全新升级,成功支撑...
2025-12-08 11:15:21
高德发布“AI停车雷达” ...
近日,高德正式发布全国首个道路车位实时感知功能——“AI停车雷达”...
2025-12-05 17:47:32

热门资讯

原创 2... #春日生活好物种草季#近年来,笔记本电脑市场迎来技术爆发期,尤其在手机厂商跨界入局后,轻薄本在性能、...
AMD锐龙AI 9 HX 37... 2024年6月3日,AMD正式发布全新的锐龙AI 300系列处理器。该系列处理器一经发布就引发大家的...
5个AI模特生成软件推荐 当前AI模特生成软件市场提供了多样化的解决方案,以下是几款备受推崇的工具: 触站AI:强烈推荐!...
骁龙本这么猛?联想YOGA A... 在人人都是自媒体的时代,一部手机可以解决出镜拍摄问题,而商务出差、大量码字、图像处理等需求用笔记本则...
2023年CentOS与Ubu... CentOS与Ubuntu的市场格局与技术特性探讨 在服务器操作系统领域,CentOS与Ubuntu...
苹果macOS 15.1:允许... 苹果公司在其最新的macOS 15.1版本中,推出了一项引人注目的新功能——允许用户将Mac App...
原创 苹... 前言 IQUNIX在做好看的桌面产品上,一直都给我留下非常深刻的印象。而且早期和苹果产品的设计风格...
原创 华... 在2024年这个被誉为"AI元年"的关键时刻,随着生成式AI的流行,各家手机厂商都在积极备战AI手机...
原创 华... 想在竞争残酷的市场中发力,必须要带来一些激进的卖点,但是随着功能特性的提升,硬件也必须要进行给力才可...