瀏覽代碼

wip: use signal for clock

Jonathan Kelley 2 年之前
父節點
當前提交
24b6874e97
共有 1 個文件被更改,包括 8 次插入12 次删除
  1. 8 12
      examples/clock.rs

+ 8 - 12
examples/clock.rs

@@ -3,29 +3,25 @@
 //! The example from the README.md.
 
 use dioxus::prelude::*;
+use dioxus_signals::{use_init_signal_rt, use_signal};
 
 fn main() {
     dioxus_desktop::launch(app);
 }
 
 fn app(cx: Scope) -> Element {
-    let count = use_ref(cx, || 0);
+    use_init_signal_rt(cx);
 
-    let ct = count.to_owned();
-    use_coroutine(cx, |_: UnboundedReceiver<()>| async move {
-        loop {
-            tokio::time::sleep(std::time::Duration::from_millis(10)).await;
-
-            *ct.write() += 1;
-
-            let current = *ct.read();
+    let mut count = use_signal(cx, || 0);
 
-            println!("current: {}", current);
+    use_future!(cx, || async move {
+        loop {
+            tokio::time::sleep(std::time::Duration::from_millis(100)).await;
+            count += 1;
+            println!("current: {}", count);
         }
     });
 
-    let count = count.read();
-
     cx.render(rsx! {
         div { "High-Five counter: {count}" }
     })