15 unstable releases (7 breaking)
| 0.13.0 | Apr 7, 2026 |
|---|---|
| 0.12.0 | Feb 25, 2026 |
| 0.11.0 | Mar 7, 2025 |
| 0.10.0 | Dec 19, 2023 |
| 0.6.1 | Mar 19, 2021 |
#207 in Web programming
4,287 downloads per month
Used in 10 crates
79KB
1.5K
SLoC
Yewdux
Simple state management for Yew applications.
See the book for more details.
Example
use yew::prelude::*;
use yewdux::prelude::*;
#[derive(Default, Clone, PartialEq, Eq, Store)]
struct State {
count: u32,
}
#[function_component]
fn App() -> Html {
let (state, dispatch) = use_store::<State>();
let onclick = dispatch.reduce_mut_callback(|state| state.count += 1);
html! {
<>
<p>{ state.count }</p>
<button {onclick}>{"+1"}</button>
</>
}
}
Default exports
Yewdux
Ergonomic state management for Yew applications.
See the book for more details.
Example
use yew::prelude::*;
use yewdux::prelude::*;
#[derive(Default, Clone, PartialEq, Store)]
struct State {
count: u32,
}
#[function_component]
fn ViewCount() -> Html {
let (state, _) = use_store::<State>();
html!(state.count)
}
#[function_component]
fn IncrementCount() -> Html {
let (_, dispatch) = use_store::<State>();
let onclick = dispatch.reduce_mut_callback(|counter| counter.count += 1);
html! {
<button {onclick}>{"+1"}</button>
}
}
#[function_component]
fn App() -> Html {
html! {
<>
<ViewCount />
<IncrementCount />
</>
}
}
fn main() {
yew::Renderer::<App>::new().render();
}
Dependencies
~15–22MB
~311K SLoC