diff --git a/examples/simple_router.rs b/examples/simple_router.rs new file mode 100644 index 000000000..0604558a1 --- /dev/null +++ b/examples/simple_router.rs @@ -0,0 +1,42 @@ +#![allow(non_snake_case)] +use dioxus::prelude::*; +use dioxus_router::prelude::*; + +#[derive(Routable, Clone, PartialEq)] +enum Route { + #[layout(Nav)] + #[route("/")] + Homepage {}, + + #[route("/blog/:id")] + Blog { id: String }, +} + +#[inline_props] +fn Homepage(cx: Scope) -> Element { + render! { h1 { "Welcome home" } } +} + +#[inline_props] +fn Blog(cx: Scope, id: String) -> Element { + render! { + h1 { "How to make: " } + p { "{id}" } + } +} + +#[inline_props] +fn Nav(cx: Scope) -> Element { + render! { + nav { + li { Link { to: Route::Homepage { }, "Go home" } } + li { Link { to: Route::Blog { id: "Brownies".to_string() }, "Learn Brownies" } } + li { Link { to: Route::Blog { id: "Cookies".to_string() }, "Learn Cookies" } } + } + div { Outlet:: {} } + } +} + +fn main() { + dioxus_desktop::launch(|cx| render!(Router:: {})); +}