1
0

async.rs 776 B

123456789101112131415161718192021222324252627282930313233343536
  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. simple_logger::init().unwrap();
  12. dioxus_desktop::launch(app);
  13. }
  14. fn app(cx: Scope<()>) -> Element {
  15. let mut count = use_state(&cx, || 0);
  16. log::debug!("count is {:?}", count);
  17. cx.push_task(|| async move {
  18. tokio::time::sleep(Duration::from_millis(1000)).await;
  19. count += 1;
  20. });
  21. cx.render(rsx! {
  22. div {
  23. h1 { "High-Five counter: {count}" }
  24. button {
  25. onclick: move |_| count.set(0),
  26. "Click me!"
  27. }
  28. }
  29. })
  30. };