link.rs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. use dioxus::prelude::*;
  2. fn main() {
  3. launch_desktop(App);
  4. }
  5. #[component]
  6. fn App() -> Element {
  7. rsx! (
  8. div {
  9. p { a { href: "http://dioxuslabs.com/", "Default link - links outside of your app" } }
  10. p {
  11. a {
  12. href: "http://dioxuslabs.com/",
  13. prevent_default: "onclick",
  14. onclick: |_| println!("Hello Dioxus"),
  15. "Custom event link - links inside of your app"
  16. }
  17. }
  18. }
  19. div { Router::<Route> {} }
  20. )
  21. }
  22. #[derive(Routable, Clone)]
  23. #[rustfmt::skip]
  24. enum Route {
  25. #[layout(Header)]
  26. #[route("/")]
  27. Home {},
  28. #[route("/settings")]
  29. Settings {},
  30. }
  31. #[component]
  32. fn Header() -> Element {
  33. rsx! {
  34. h1 { "Your app here" }
  35. ul {
  36. li {
  37. Link { to: Route::Home {}, "home" }
  38. }
  39. li {
  40. Link { to: Route::Settings {}, "settings" }
  41. }
  42. }
  43. Outlet::<Route> {}
  44. }
  45. }
  46. #[component]
  47. fn Home() -> Element {
  48. rsx!( h1 { "Home" } )
  49. }
  50. #[component]
  51. fn Settings() -> Element {
  52. rsx!( h1 { "Settings" } )
  53. }