
🔷 一、项目概览:Dioxus 是什么?
Dioxus 是一个使用 Rust 语言编写、具有高度跨平台能力的前端框架。它的设计灵感汲取自 React、Solid 和 Svelte 等现代框架,核心目标是 “一次编写,处处运行”,使开发者能够使用同一套代码库构建多种类型的应用:
- • Web 应用(通过 WebAssembly 在浏览器中运行)
- • 桌面应用(借助 Webview 或 WGPU 渲染)
- • 移动应用(支持打包为 Android APK 和 iOS IPA)
- • 服务端渲染(SSR) 应用
- • 甚至包括 嵌入式系统(如嵌入式 Linux 设备)
其愿景是构建高性能、全栈且内存安全的用户界面。
🔷 二、主要特性亮点
🌐 1. 跨平台统一架构
- • 实现了 Web、桌面、移动端和服务端的一体化开发体验。
- • 支持在 macOS、Linux、Windows 上无缝运行与构建。
- • 能够直接输出适用于应用商店的
.apk 和 .ipa 安装包,极大简化了移动端应用的发布流程。

⚡ 2. 热重载与热补丁
- • 通过
dx serve 命令可实现亚秒级的 UI 实时热重载,提升开发效率。
- • 实验性的
dx serve --hotpatch 功能支持在应用运行时动态更新 Rust 代码。
🧠 3. 现代信号式状态管理
- • 巧妙融合了 React Hooks 的设计思想与高效的信号机制,状态管理简洁直观。
- • 示例代码清晰展示了其响应式编程模型:
fn app() -> Element {
let mut count = use_signal(|| 0);
rsx! {
h1 { "High-Five counter: {count}" }
button { onclick: move |_| count += 1, "Up high!" }
button { onclick: move |_| count -= 1, "Down low!" }
}
}
🔧 4. 原生集成与高效打包
- • 使用
dx bundle 命令进行一站式的全平台构建打包。
- • Web 构建支持高级优化:
- •
.avif 现代图像格式优化
- •
.wasm 代码压缩
- • 最终产物可小于 50KB
- • 桌面端与移动端应用的构建体积通常能控制在 5MB 以内。

🧩 5. 强大的全栈能力
- • 与 Rust 生态中流行的 Axum Web 框架深度集成,为构建全栈应用提供强力支持。
- • 开箱即用地支持 WebSocket、SSE(服务器发送事件)、流式文件上传/下载、表单处理、中间件及服务端渲染(SSR)。
- • 提供 “Server Functions” 特性,让编写和调用服务端逻辑如同编写本地函数一样简单。

🧱 6. 一体化组件与多后端渲染
- • 提供类似 shadcn/ui 和 Radix 风格的原子化组件,助力快速构建美观 UI。
- • 支持多种渲染后端,适应不同平台需求:
- • Web-Sys (用于 WebAssembly)
- • WebView (用于桌面应用)
- • WGPU (利用 GPU 进行硬件加速渲染)
- • Freya (基于 Skia 的高性能 UI 引擎)
- • 以及嵌入式设备专属后端
📱 7. 原生移动端支持
- • 通过调用 JNI (Android) 和 Objective-C (iOS) 实现真正的原生能力交互。
- • 使用
dx serve --platform android 命令可立即在 Android 模拟器或真机上运行并调试应用。
🔷 三、快速上手指南
✅ 安装 CLI 工具(推荐方式)
通过 cargo-binstall 安装特定版本:
cargo binstall dioxus-cli@0.7.0 --force
或从 GitHub 仓库安装最新版:
cargo install --git https://github.com/DioxusLabs/dioxus dioxus-cli --locked
🚀 启动热重载开发服务器
在项目根目录下运行:
dx serve
🔥 运行官方示例项目
运行特定的示例(以 example-name 为例):
cargo run --example <example-name>
若想针对 Web 平台运行示例:
dx serve --example <example> --platform web -- --no-default-features
github仓库:DioxusLabs/dioxus
|