async.rs 704 B

12345678910111213141516171819202122232425262728293031323334
  1. //! Example: README.md showcase
  2. //!
  3. //! The example from the README.md.
  4. use std::time::Duration;
  5. use dioxus::prelude::*;
  6. use dioxus_core as dioxus;
  7. use dioxus_core_macro::*;
  8. use dioxus_hooks::*;
  9. use dioxus_html as dioxus_elements;
  10. fn main() {
  11. dioxus_desktop::launch(App, |c| c);
  12. }
  13. static App: FC<()> = |cx, props| {
  14. let mut count = use_state(cx, || 0);
  15. cx.push_task(|| async move {
  16. tokio::time::sleep(Duration::from_millis(100)).await;
  17. count += 1;
  18. });
  19. cx.render(rsx! {
  20. div {
  21. h1 { "High-Five counter: {count}" }
  22. button {
  23. onclick: move |_| count.set(0),
  24. "Click me!"
  25. }
  26. }
  27. })
  28. };