web_router.rs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #![cfg(target_arch = "wasm32")]
  2. use dioxus_core::prelude::*;
  3. use dioxus_core_macro::*;
  4. use dioxus_html as dioxus_elements;
  5. use dioxus_router::*;
  6. use gloo_utils::document;
  7. use serde::{Deserialize, Serialize};
  8. use wasm_bindgen_test::*;
  9. wasm_bindgen_test_configure!(run_in_browser);
  10. #[wasm_bindgen_test]
  11. fn simple_test() {
  12. fn main() {
  13. console_error_panic_hook::set_once();
  14. wasm_logger::init(wasm_logger::Config::new(log::Level::Debug));
  15. dioxus_web::launch(APP);
  16. }
  17. static APP: Component = |cx| {
  18. cx.render(rsx! {
  19. Router {
  20. onchange: move |route: RouterService| log::info!("route changed to {:?}", route.current_location()),
  21. Route { to: "/", Home {} }
  22. Route { to: "blog"
  23. Route { to: "/", BlogList {} }
  24. Route { to: ":id", BlogPost {} }
  25. }
  26. }
  27. })
  28. };
  29. fn Home(cx: Scope) -> Element {
  30. cx.render(rsx! {
  31. div {
  32. h1 { "Home" }
  33. }
  34. })
  35. }
  36. fn BlogList(cx: Scope) -> Element {
  37. cx.render(rsx! {
  38. div {
  39. }
  40. })
  41. }
  42. fn BlogPost(cx: Scope) -> Element {
  43. let id = use_route(&cx).parse_segment::<usize>("id")?;
  44. cx.render(rsx! {
  45. div {
  46. }
  47. })
  48. }
  49. main();
  50. let element = gloo_utils::document();
  51. }