#yew #state #container #shared #redux

yewdux-macros

为Yew应用程序提供高效的状管理态

9个版本

0.10.0 2023年12月19日
0.9.4 2023年10月10日
0.9.3 2023年6月1日
0.9.2 2023年2月23日
0.8.1 2022年8月19日

#21 in #redux

Download history 794/week @ 2024-04-13 643/week @ 2024-04-20 835/week @ 2024-04-27 724/week @ 2024-05-04 639/week @ 2024-05-11 623/week @ 2024-05-18 510/week @ 2024-05-25 662/week @ 2024-06-01 731/week @ 2024-06-08 691/week @ 2024-06-15 596/week @ 2024-06-22 519/week @ 2024-06-29 527/week @ 2024-07-06 513/week @ 2024-07-13 583/week @ 2024-07-20 500/week @ 2024-07-27

2,199 每月下载量
9 个crate中使用 (通过 yewdux)

MIT/Apache

6KB
96

Yewdux

Yew应用程序提供高效的状管理态。

查看手册以获取更多详细信息。

示例

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

依赖

~0.6–1.1MB
~24K SLoC