modx

github release crates.io downloads docs.rs docs stars

[modx](https://github.com/tkr-sh/modx) is an experimental way to handle states with structs in [Dioxus](https://dioxuslabs.com/) inspired by [mobx](https://mobx.js.org/README.html). ## Example ```rs #[modx::store] struct CounterStore { count: i64, } impl CounterStore { fn inc(&mut self) { self.count += 1; } fn dec(&mut self) { self.count -= 1; } } fn app() -> Element { let mut store = CounterStore::new(); rsx! { button { onclick: move |_| store.inc(), "+1" } button { onclick: move |_| store.dec(), "-1" } "{store.count}" } } ``` ## Documentation Documentation can be found at https://docs.rs/modx ## More examples There are some examples at `~/examples` so you can see how to use `modx` and how it behaves. You can run an example with: ```sh cargo run --example this_example ``` with `this_example` being the name of the file (without the extension) ## Development progress In the near future, most of the hooks should be rewrote to work with modx. Here is the current status: - [X] Signals - [X] Props - [X] Resources - [ ] Memo - [ ] Server future