![]()
跨平台这条赛道,看着已经卷了很多年,大家以为方向差不多定型了;结果最近 Snapchat 又给出了新的思路。
他们把内部用的一个框架开源出来,名字叫Valdi。刚刚上线一周,就把 GitHub 推到 10k Star。为什么能火?因为它走的路和现在主流的方案完全不一样。
传统跨平台要么靠 WebView,要么用 Electron 那种“带着浏览器跑路”的方式。而 Valdi 干脆反其道而行:写法像前端,渲染却完全是原生的。
简单说,就是:
用 TSX 写 UI,最后却跑成原生组件。
对前端来说,这是一种很少见的组合。你仍然用 TypeScript 思维写页面,但渲染层不再托付给 Web 技术,而是由 C++ 原生引擎直接接管。也因为这样,它的 iOS demo 才能做到状态切换只有 2ms,几乎没有掉帧。
Valdi 到底是什么?
Valdi 的想法其实很“工程师”:把 UI 语法变得更易写(前端友好),但执行路径必须是原生(性能天花板够高)。
它不会加载浏览器,也没有 JSCore,那些跨平台框架里的桥接也统统不需要。你写出来的 TSX,会直接被编译成原生视图结构。
说白了,它更像是“让 TypeScript 拥有原生 UI 的表达能力”。
为什么一发布就火?
总结下来就三点:
前端友好
不用学 Swift、不用学 Kotlin,也不用理解复杂的渲染管线。
会 TS 会 JSX,就能写原生交互。
Snap 的自研能力摆在那
Snap 在动画、渲染链路方面一直很强,这次把内部积累放出来,本身就自带关注度。
刚好补了 WebView 的短板
现在跨平台的选择,要么很好写、但慢;要么性能高、但门槛高。
Valdi 就是站在两者之间的那个点:用前端的方式,做原生级性能。
和 Electron、Tauri 的区别在哪?
说到底,这三者走的是完全不同的路线,用一张表看得更清楚:
![]()
你会发现,Valdi 不是来替代 Electron 或 Tauri 的,它更像是:
在“Web 套壳”之外,提供了另一条思路:用前端的写法,渲染完全走原生。
如果把跨平台的发展简单分三代,大概会是这样:
- Web 套壳时代(Electron)
- 轻量 WebView + Rust 隔离(Tauri)
- 前端写法 + 原生渲染(Valdi)
Valdi 属于第三代,底层路线直接变了。
哪些场景更合适?
适合
- 只写过前端但想做移动端的开发者
- 动画、交互比较重的界面
- 想把 TS 代码尽可能多端复用的团队
不适合
- 需要很成熟的生态(各种插件、模板)
- 只做桌面,不做移动端
- 高度依赖 Web UI 库的项目
毕竟现在还是 beta,框架还在长身体。
Valdi 之所以能在一周里涨到 10k Star,不是因为它已经成熟,而是因为它重新提出了一个很多人都关心的问题:
能不能只写 TypeScript,就做出原生性能的 App?
这个方向一旦出现,就很难再被忽视了。
无论最后 Valdi 走到哪一步,它至少让跨平台这条赛道重新热闹了起来。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.