multiwindow.rs 786 B

1234567891011121314151617181920212223242526272829303132
  1. //! Multiwindow example
  2. //!
  3. //! This example shows how to implement a simple multiwindow application using dioxus.
  4. //! This works by spawning a new window when the user clicks a button. We have to build a new virtualdom which has its
  5. //! own context, root elements, etc.
  6. use dioxus::prelude::*;
  7. fn main() {
  8. dioxus::launch(app);
  9. }
  10. fn app() -> Element {
  11. let onclick = move |_| {
  12. dioxus::desktop::window().new_window(VirtualDom::new(popup), Default::default());
  13. };
  14. rsx! {
  15. button { onclick, "New Window" }
  16. }
  17. }
  18. fn popup() -> Element {
  19. let mut count = use_signal(|| 0);
  20. rsx! {
  21. div {
  22. h1 { "Popup Window" }
  23. p { "Count: {count}" }
  24. button { onclick: move |_| count += 1, "Increment" }
  25. }
  26. }
  27. }