Crates.io | yewdux-macros |
lib.rs | yewdux-macros |
version | 0.10.0 |
source | src |
created_at | 2022-08-19 01:09:07.283568 |
updated_at | 2023-12-19 02:53:00.462471 |
description | Ergonomic state management for Yew applications |
homepage | |
repository | https://github.com/yewdux/yewdux |
max_upload_size | |
id | 648457 |
size | 5,889 |
Ergonomic state management for Yew applications.
See the book for more details.
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();
}