12 releases

0.10.0 Dec 19, 2023
0.9.4 Oct 10, 2023
0.9.3 Jun 1, 2023
0.9.2 Feb 23, 2023
0.6.1 Mar 19, 2021

#341 in Web programming

Download history 667/week @ 2024-07-27 967/week @ 2024-08-03 1087/week @ 2024-08-10 877/week @ 2024-08-17 1131/week @ 2024-08-24 1457/week @ 2024-08-31 851/week @ 2024-09-07 659/week @ 2024-09-14 890/week @ 2024-09-21 633/week @ 2024-09-28 414/week @ 2024-10-05 656/week @ 2024-10-12 636/week @ 2024-10-19 550/week @ 2024-10-26 653/week @ 2024-11-02 642/week @ 2024-11-09

2,550 downloads per month
Used in 9 crates

MIT/Apache

62KB
1.5K SLoC

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();
}

lib.rs:

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

Dependencies

~12–20MB
~283K SLoC