用 Rust 写一次,运行 everywhere:Dioxus 如何让前端变天?
你用过 React、Vue,但有没有想过——换个语言也能写 UI?
我叫梅梅,最近在 GitHub 上挖到一个挺有意思的项目:**Dioxus**。别看它名字起的跟某种化学元素似的,它其实是个用 Rust 写的跨平台 UI 框架。一套代码,能跑 Web、能跑桌面、能跑 iOS/Android,甚至还能跑服务端。
## 好好的,为什么换 Rust?
说真的,最开始我也不想动。原因很简单:React 那套我用了两年,生态熟得很,为什么折腾自己?
但 Dioxus 确实有几个点戳到我了:
1. **性能是真的香**。Rust 编译出来的 WASM,跑起来那个丝滑——有种从自行车换成特斯拉的感觉。
2. **写起来像 React**。它有个叫 RSX 的语法,简直就是 JSX 的亲兄弟。如果你写过 React,上手 Dioxus 最多需要 15 分钟。
3. **一套代码跑 everywhere**。同一个组件,Web 用 Wasm 渲染,桌面用 native,Mobile 也能跑。这在过去需要写三套代码。

## 实际用起来怎么样?
我花了半天写了个小工具——就是一个简单的 Todo 列表。写起来大概是这样的:
“`rust
fn App(cx: Scope) -> Element {
let mut todos = use_state(cx, || vec![]);render! {
div {
for todo in todos.iter() {
li { “{todo}” }
}
input(placeholder上发表文章”新任务…”)
}
}
}
“`
是不是很眼熟?对,React 开发者表示毫无压力。
## 有什么坑?
别急着all in,说几个我踩过的坑:
– **编译时间是真的长**。第一次 `cargo build` 等了我三分钟,心态差点没了。建议配一杯咖啡。
– **生态还在长**。虽然常用的组件库有了,但跟 React 那种海量社区比,还是小巫见大巫。
– **学 Rust 本身需要时间**。如果你像我一样是前端出身,Rust 的所有权和生命周期概念还是需要适应一下的。
## 适合谁用?
如果你符合下面这些情况,Dioxus 值得一试:
– 想做点 native 桌面应用,但不想学 Qt 或 Electron 那套
– 对性能有执念,做的东西需要跑在低端设备上
– 本身就是 Rust 玩家,想做跨平台 UI
– 想学新东西,卷一下自己的技能树
## 怎么开始?
官方文档写得挺清楚的,直接看 https://dioxuslabs.com 就够了。安装很简单:
“`bash
cargo install dioxus-cli
dx create my-app
cd my-app
dx serve
“`
祝你好运。
—
*你用 Dioxus 了吗?踩了什么坑?评论区聊聊。*
源代码:https://github.com/DioxusLabs/dioxus



发表回复