一键导入
dioxus-guide
Dioxus v0.7.x desktop app guide. Components, Signal state, rsx! macro, hooks, events, Context API, async.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Dioxus v0.7.x desktop app guide. Components, Signal state, rsx! macro, hooks, events, Context API, async.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Claude + Gemini + Codex 4者クロスファクトチェック。Opus自身、Gemini Flash、Gemini Pro、Codex (gpt-5.3-codex) の4者で独立チェック→争点抽出→議論→合意レポートを出力する。
Claude + Gemini クロスファクトチェック。Opus自身、Gemini Flash、Gemini Proの3者で独立チェック→争点抽出→議論→合意レポートを出力する。
Claude内マルチモデルファクトチェック。Opusが自身でチェックし、Sonnetサブエージェントに独立チェックさせ、両者の結果を比較・議論して合意レポートを出力する。
Gemini CLIのGoogle検索統合(grounding)を使ったWeb検索。Claudeは結果の整形・要約のみ担当し、WebSearchツールは使用しない。
Axum v0.8.x backend development guide. Handlers, routing, middleware, auth, error handling.
Leptos v0.8.x frontend development guide. Components, signals, resources, async, forms, and ownership patterns.
| name | dioxus-guide |
| description | Dioxus v0.7.x desktop app guide. Components, Signal state, rsx! macro, hooks, events, Context API, async. |
Deprecated in 0.7:
cx / Scope → Not neededuse_state → use_signaluse_ref → use_signaluse dioxus::prelude::*;
fn main() { dioxus::launch(App); }
#[component]
fn App() -> Element {
rsx! { "Hello, Dioxus!" }
}
[dependencies]
dioxus = { version = "0.7.2", features = ["router"] }
[features]
default = ["desktop"]
web = ["dioxus/web"]
desktop = ["dioxus/desktop"]
rsx! {
div { class: "container", color: "red",
width: if condition { "100%" }, // Conditional attr
"Hello!"
}
for i in 0..5 { div { "{i}" } } // Loop (prefer for over iter)
if condition { div { "True!" } } // Conditional
{children} // Expressions in braces
}
#[component]
fn MyComponent(
title: String,
#[prop(optional)] class: Option<String>,
#[prop(default = 10)] limit: usize,
children: Element,
) -> Element {
rsx! {
div { class: class.unwrap_or_default(),
h1 { "{title}" }
{children}
}
}
}
Props: Must be owned types (String, not &str), implement PartialEq + Clone
#[component]
fn Counter() -> Element {
let mut count = use_signal(|| 0);
rsx! {
h1 { "Count: {count}" }
button { onclick: move |_| *count.write() += 1, "+" }
}
}
// Read
count() // Clone value
count.read() // Reference (&T)
// Write
count.set(10)
*count.write() = 10
count.with_mut(|c| *c += 1)
let doubled = use_memo(move || count() * 2);
// Provider
#[component]
fn App() -> Element {
let theme = use_signal(|| "light".to_string());
use_context_provider(|| theme);
rsx! { Child {} }
}
// Consumer
#[component]
fn Child() -> Element {
let theme = use_context::<Signal<String>>();
rsx! { div { "Theme: {theme}" } }
}
let data = use_resource(move || async move { fetch_data().await });
match data() {
Some(result) => rsx! { div { "{result}" } },
None => rsx! { "Loading..." },
}
// With dependency
let user = use_resource(move || {
let id = user_id(); // Re-runs when this changes
async move { fetch_user(id).await }
});
#[derive(Routable, Clone, PartialEq)]
enum Route {
#[layout(NavBar)]
#[route("/")]
Home {},
#[route("/blog/:id")]
BlogPost { id: i32 },
}
#[component]
fn NavBar() -> Element {
rsx! {
nav { a { href: "/", "Home" } }
Outlet::<Route> {}
}
}
#[component]
fn App() -> Element {
rsx! { Router::<Route> {} }
}
rsx! {
button { onclick: move |_| { /* click */ }, "Click" }
input {
oninput: move |e| set_value(e.value()),
prop:value: value,
}
input { onkeydown: move |e| {
if e.key() == Key::Enter { /* enter pressed */ }
}}
form { onsubmit: move |e| {
e.prevent_default();
// submit
}}
}
[desktop.window]
title = "MyApp"
width = 1200
height = 800
curl -sSL http://dioxus.dev/install.sh | sh # Install dx CLI
dx serve # Dev server
dx build --release
dx bundle --release # Create .deb etc.
| Item | Dioxus 0.7 | Leptos 0.8 |
|---|---|---|
| Signal | use_signal (Copy-like) | signal() (may need clone) |
| Macro | rsx! {} | view! {} |
| Desktop | Native support | Needs Tauri |