上周四晚上,我在公司加班到11点,眼睛盯着三个IDE窗口,差点崩溃:
左边是 React 代码(Web端),中间是 Flutter 代码(移动端),右边是 Electron 代码(桌面端)。明明是同一个功能——「用户个人资料页」,我却要写三套几乎一样的逻辑,改一个bug得改三次。

更气人的是,Flutter 的布局总是和设计稿对不上,Electron 打包又出了问题,React 的状态管理越写越复杂……得,又要熬夜了。
直到今天早上刷 GitHub Trending,看到一个叫 Dioxus 的项目,瞬间精神了:「用 Rust 写一套代码,就能运行在Web、桌面、移动端,甚至终端!」——这不就是我梦寐以求的「跨平台救星」吗?
什么来头?Rust生态的「跨平台神器」
这个项目是由 Dioxus Labs 开发的,现在已经有 33k+ 星了。官方说它是「适用于Web、桌面和移动端的全栈应用框架」。但我觉得更准确的形容是:这是一个「把 Rust 的能力发挥到极致的跨平台框架」——它用 Rust 的安全性和高性能,加上 React 一样的开发体验,实现了真正的「一次编写,处处运行」。
它到底能帮我解决什么问题?
我花了一下午研究,发现这玩意儿最牛的地方,是把「跨平台开发的痛苦」变成了「快乐的体验」。
1. 一套代码,五个平台
用 Dioxus,你写一套 Rust 代码,就能直接编译成:
- Web应用(支持 WASM,性能接近原生)
- 桌面应用(Windows/Mac/Linux,不用 Electron)
- 移动端应用(iOS/Android,不用 Flutter)
- 服务端渲染(SSG/SSR)
- 甚至终端 UI(TUI)
想象一下:你写一个待办事项应用,上午写好核心逻辑,下午就能同时发布到网页、App Store 和 Microsoft Store——这效率,简直不敢想!
2. React开发者的「舒适区」
如果你用过 React,上手 Dioxus 几乎零成本。它的 API 设计和 React 非常像,看下面的组件代码就明白了:
// Dioxus组件
fn App(cx: Scope) -> Element {
let (count, set_count) = use_state(cx, || 0);
cx.render(rsx! {
div {
h1 { "计数器: {count}" }
button { onclick: move |_| set_count(count + 1), "增加" }
button { onclick: move |_| set_count(count - 1), "减少" }
}
})
}
是不是和 React 的函数组件几乎一模一样?连状态管理的 API 都差不多!
3. 性能爆炸,安全性拉满
因为是用 Rust 写的,Dioxus 的性能比 JavaScript 框架高出一大截。官方说它的渲染性能「接近原生应用」,而且内存占用特别低。更重要的是 Rust 的安全性——再也不用担心空指针、内存泄漏这些问题了。写出来的代码,运行起来就是可靠。
4. 零配置开发,热重载爽到爆
我最烦的就是配置环境,比如 Flutter 的 Android Studio 配置,Electron 的打包配置,React 的 Webpack 配置……Dioxus 的开发者显然也懂这个痛点,所以它支持「零配置开发」。你只需要安装 Rust,然后:
cargo install dioxus-cli
dx new myapp
cd myapp
dx serve
完事了。浏览器自动打开,修改代码后秒级热重载——这体验,比 Vite 还爽!
用起来真的有这么好吗?
我立刻动手试了一下,用 Dioxus 写了一个简单的「天气查询应用」。从创建项目到写完核心功能,只用了不到一个小时。而且——
- Web端:直接在浏览器里运行,流畅得一批
- 桌面端:用
dx build --platform desktop 打包,生成了一个 10MB 的可执行文件(比 Electron 的几百MB小太多了!)
- 移动端:虽然还在测试阶段,但已经能在 Android 模拟器上运行了
最让我惊喜的是状态管理。Dioxus 用的是「信号系统」,比 React 的 useState + Context 简单多了,而且性能更好。
它有什么缺点吗?
当然,也不是完美的。比如生态系统还不如 React 和 Flutter 成熟,第三方库相对较少。如果你需要一些特别冷门的功能,可能需要自己实现。还有,移动端的支持还在完善中,iOS 的兼容性可能不如 Android 好。但这些都是成长中的问题。对于一个才几年的项目来说,能做到这个程度已经非常厉害了。
为什么说它是未来?
我觉得 Dioxus 的出现,代表了跨平台开发的一个重要方向:用系统级语言(Rust)+ 声明式 UI,实现真正的「一次编写,处处运行」。之前的跨平台框架,要么性能差(Electron),要么学习曲线陡(Flutter),要么生态差(其他小众框架)。而 Dioxus,刚好平衡了这几点:
- 性能:Rust 的性能不用多说
- 开发体验:和 React 类似,学习成本低
- 跨平台能力:真正的全平台支持
更重要的是,它站在 Rust 这个「未来语言」的肩膀上。随着 Rust 越来越流行,Dioxus 的生态只会越来越好。
最后说两句
作为一个写了五年跨平台代码的开发者,我觉得 Dioxus 真的是「久旱逢甘霖」。它让我看到了一个美好的未来:不用再维护多套代码,不用再为不同平台的兼容性头疼,不用再在性能和开发效率之间做妥协。
如果你也是一个被跨平台开发折磨的开发者,或者对 Rust 感兴趣,不妨试试 Dioxus。相信我,用上之后你会感叹:「原来跨平台开发也能这么爽!」
对了,项目地址在这里:https://github.com/DioxusLabs/dioxus,采用 Apache-2.0 开源协议,完全免费。如果你想了解更多此类技术分享或与其他开发者交流,欢迎来 云栈社区 看看。