← All Workshops

Intro to Dioxus 0.7

Reactive State with Signals

Signals are the reactive primitive in Dioxus 0.7. Use `use_signal` to create

local state. Reading a signal in your component automatically subscribes to

changes — no manual dependency tracking needed.

src/main.rs
#[component]
fn Counter() -> Element {
    let mut count = use_signal(|| 0);

    rsx! {
        p { "Count: {count}" }
        button {
            onclick: move |_| *count.write() += 1,
            "Increment"
        }
        button {
            onclick: move |_| *count.write() -= 1,
            "Decrement"
        }
    }
}
Watch in browser
dx serve --open