大家好,我是渔夫。
今天分享主题,近期收到了许多伙伴私信,对这个框架表现出了浓厚的兴趣,并希望了解更多关于如何学习以及如何应用这个框架的知识,咱们简单聊聊!
什么是 Dioxus 框架?
Dioxus 它就是使用 Rust 编程语言构建的跨平台用户界面(UI)框架,是个可移植、高性能的框架,用于在 Rust 中构建跨平台的用户界面,是个非常棒的框架。
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!" }
}
}
Dioxus 可以做什么?
Dioxus 作为一个跨平台 UI 框架,拥有其高性能和跨平台的特性,特别适合于那些对性能要求较高且需要在多个平台上运行的应用程序如:
- 桌面应用程序:制作网页程序桌面应用、静态站点、移动端应用,图像编辑工具、文本编辑器。
- Web应用程序:比如电子商务平台、电子商务平台等。
如果,你之前熟悉了 React,那么会发现 Dioxus 的学习曲线相对平缓,因为 Dioxus 在设计上借鉴了许多 React 的设计理念和模式。
如果像我一样新手,不过有 GPT 的时代,应该不会那么难,学习成本很低了。
Dioxus 入门
首先,学习任何语言框架,推荐去翻开官网或 Github 上的案例,然后模仿几个小 Demo 辅助 AI 工具,学习会事半功倍!
Hello world 开始吧!
创建项目:cargo new --bin Hello-dioxus
添加依赖库:cargo add dioxus --features desktop,根据自己需求来添加 Feature
use dioxus::prelude::*;
fn main() {
dioxus::desktop::launch(App);
}
fn App(cx: Scope) -> Element {
cx.render(rsx! (
div { "Hello, 你好!" }
))
}
运行项目:cargo run
解释:
- dioxus::desktop::launch(App),来启动桌面应用程序,这时App 函数将在启动时被调用。
- fn App(cx: Scope) -> Element { ... }: 接受 Scope 参数并返回 Element 的函数。在 dioxus 中,Scope 是一个用于构建 UI 的上下文对象,Element 则是 UI 元素的抽象表示。提供显示的数据处理、获取方法,提供了渲染等功能
- cx.render(rsx! ( div { "Hello, 你好!" } )): 该代码使用了一个宏 rsx!,它提供了类似于 React 中 JSX 的语法来描述 UI,并且它创建了一个 div 元素,其中包含了文本 "Hello, 你好!"。简单点说,使用 cx.render() 去渲染了一个页面。
好了,今天就扯这么多,下期聊聊 UI 设计及一些基本用法