2024 年 12 月 9 日,Dioxus 0.6 重磅发布!这次更新带来了许多全新的工具特性,显著提升了开发者体验,包括移动模拟器支持、热重载、交互式 CLI 等,助力开发者更高效地构建全栈应用。
什么是 Dioxus?
Dioxus 是一个全栈开发框架,支持通过单一代码库构建 Web、桌面和移动应用。我们的目标是打造一个比 Flutter 更强大的框架。Dioxus 专注于:
- 一流的全栈 Web 支持
- 类型安全的服务器/客户端通信
- 极致的性能
0.6 版本的主要亮点
此次发布,我们重新设计了 Dioxus CLI,大幅提升了开发者体验,修复了许多长期存在的问题,并引入了一系列新功能。
1. 全新 Dioxus CLI
以下是 Dioxus CLI 的关键改进:
- dx serve for mobile:支持在 Android 和 iOS 模拟器及设备上运行应用。
- 神奇的热重载:支持格式化字符串、属性和嵌套的
rsx!{}
的热重载。 - 交互式 CLI:借鉴 Astro 的交互式用户体验,重新设计了 Dioxus CLI。
- 内联堆栈跟踪:直接在终端中捕获 WASM 崩溃和日志。
- 桌面和移动端的服务器函数支持:为本地应用内联服务器 RPC。
2. 全框架开发者体验改进
我们还在框架的其他方面进行了大量优化:
- 通知与加载屏幕:开发模式下新增通知与加载屏幕,提升调试体验。
- 自动补全改进:大幅提升
RSX
的自动补全效果。 asset!
稳定化:稳定了集成于原生应用的基于链接器的资源系统。- 流式 HTML:支持从服务器到客户端的流式
Suspense
和错误边界。 - 静态网站生成(SSG)与增量静态生成(ISG):支持更多静态网站构建模式。
- 事件错误处理:在事件处理器、任务和组件中使用
?
处理错误。 - Meta 元素:新增
Head
、Title
、Meta
和Link
元素,用于设置文档属性。 - 同步的 prevent_default:跨平台同步处理事件。
- onresize 事件处理器:无需 IntersectionObserver 也能跟踪元素大小变化。
- onvisible 事件处理器:无需 IntersectionObserver 也能跟踪元素可见性。
- WGPU 集成:支持将 Dioxus 渲染为 WGPU 表面及子窗口的覆盖层。
- dx bundle:全面支持 Web、iOS 和 Android 平台的打包。
- JSON 模式:CLI 消息支持 JSON 输出,便于第三方工具和 CI/CD 流程使用。
- 新模板:新增三个跨平台应用的启动模板。
- 教程与指南:推出 面向 Dioxus 0.6 及后续版本的新教程和指南。
- 二进制补丁原型:基于纯 Rust 的热重载引擎原型。
重点改进详情
神奇的热重载
Dioxus 的热重载功能实现了前所未有的便利性,不仅支持常规的代码热更新,还能对嵌套的 rsx!{}
结构进行即时刷新。这极大提升了开发效率,尤其是在复杂 UI 开发场景中。
交互式 CLI
新版 CLI 借鉴了 Astro 的交互式设计,提供了更直观的用户体验。例如,在构建项目时,CLI 会根据用户选择动态更新配置,减少不必要的手动操作。
WASM 崩溃与日志捕获
通过内联堆栈跟踪功能,开发者可以直接在终端中查看 WASM 的崩溃原因及日志信息。这有助于快速定位问题,尤其是在调试复杂 Web 应用时。