这几年,Vue生态里一直有个绕不开的话题:为什么React有React Native这样成熟的原生方案,而Vue这边,似乎总是差那么一口气?
社区里不是没有尝试,从早期的NativeScript-Vue、Weex,到后来的uni-app、Vue Lynx,方案不少,但始终没能出现一个像React Native那样,在开发者社区中形成广泛共识、拥有强大生态支撑、真正实现原生体验的“扛鼎之作”。

尤其是最近,关于“Vue Native”的讨论和传闻又多了起来。很多开发者都在观望和期待:Vue官方会不会下场?会不会推出一个对标React Native的现代化方案?Web与Native之间的壁垒,Vue能不能真正打通?
然而,现实是这些声音大多仍停留在讨论阶段,实质性的进展并不多。就在大家还在等待的时候,一个意想不到的项目突然火了,而且火得很快。

这个项目就是来自Vercel Labs的zero-native。要知道,Vercel正是Next.js背后的团队。这个项目在GitHub上仅用4天时间就获得了超过3.2k的Star,增长速度相当惊人。
什么是 zero-native?
简单来说,zero-native是一个思路清奇的跨平台桌面应用框架。它的核心主张是轻量和高性能。
它允许开发者继续使用熟悉的HTML、CSS和Ja vaScript来构建应用界面,但应用的“外壳”却是由Zig语言编写的原生程序。这个组合旨在提供一个既快速又安全的运行环境。
它的优势很直接:轻量、高性能、启动极快。更重要的是,它对前端生态极其友好。你现有的技术栈——无论是Next.js、React、Vite,还是Vue、Svelte——理论上都可以无缝接入,快速打包成桌面应用。
为什么它突然火了?
根本原因在于,它选择了一条与Electron截然不同的技术路径,正好击中了Electron的一些痛点。
众所周知,Electron的原理是为每个应用打包一个完整的Chromium浏览器内核,再加上Node.js运行时。这带来了显著的代价:安装包体积巨大、内存占用高、启动速度慢、CPU消耗也不容小觑。因此,业界常有“一个简单的Hello World应用也要占用几百MB内存”的调侃。
zero-native 的思路:极致轻量
zero-native最根本的不同,就是它“不做重复造轮子”的事——它不内置Chromium。
相反,它选择直接复用操作系统本身提供的原生WebView组件:在macOS上使用与Safari同源的WKWebView,在Linux上使用WebKitGTK,在Windows上则支持WebView或CEF。这意味着,它不需要为每个应用都塞进一个完整的浏览器引擎。
而真正将性能推向极致的,是它的底层“原生壳”完全由Zig语言编写。从窗口系统、生命周期管理,到连接前端与原生功能的Bridge,再到WebView容器和应用运行时,核心部分全部由Zig实现。
Zig + WebView = 性能怪兽
这正是zero-native最吸引眼球的地方。

Zig作为近年来备受瞩目的系统级编程语言,以其接近C语言的性能、更现代的语法、安全的内存模型和强大的编译能力著称。用Zig来打造应用基础框架,带来的好处是立竿见影的:生成的二进制文件体积极小,启动速度飞快,内存占用极低。用户和开发者都能明显感觉到,它摆脱了Electron那种“套着一个浏览器”的臃肿感。
难怪很多开发者在体验后的第一反应是:这很可能成为Electron的下一代替代方案。
开发体验也很丝滑
从开发者的角度看,上手门槛并不高。通过简单的命令行操作,就能快速初始化一个项目:
npm install -g zero-native
zero-native init my_app --frontend next
cd my_app
zig build run
很快,你就会获得一个真正的桌面窗口,里面运行着原生WebView,并且已经桥接了本地能力。整个启动过程非常迅速,体验上就像直接把你的Next.js项目变成了一个原生的桌面应用,过程相当流畅。
写在最后
Vue Native或许还在路上,但zero-native已经率先登场了。它未必会立刻、彻底地取代Electron,毕竟后者有着庞大的生态和存量应用。但它的出现清晰地证明了一件事:利用Web技术开发现代桌面应用这条路,远未走到尽头,依然存在着巨大的创新和优化空间。
这一次,Vercel团队把赌注押在了Zig这门新兴语言上,为我们展示了一种更轻、更快的可能性。未来的桌面应用开发格局,或许会因此变得更加有趣。
