Files
dioxus/packages/playwright-tests/web-routing/src/main.rs
T

58 lines
973 B
Rust

use dioxus::prelude::*;
fn main() {
launch(|| {
rsx! {
Router::<Route> {}
}
})
}
#[derive(Routable, Clone, PartialEq)]
#[rustfmt::skip]
enum Route {
#[redirect("/",|| Route::Other)]
#[route("/other")]
Other,
#[route("/other/:id")]
OtherId { id: String },
#[route("/:..segments")]
NotFound { segments: Vec<String> },
}
#[component]
fn Other() -> Element {
rsx! {
div {
id: "other",
"Other"
}
Link {
id: "other-id-link",
to: Route::OtherId { id: "123".to_string() },
"go to OtherId"
}
}
}
#[component]
fn OtherId(id: String) -> Element {
rsx! {
div {
id: "other-id",
"OtherId {id}"
}
}
}
#[component]
fn NotFound(segments: Vec<String>) -> Element {
rsx! {
div {
id: "not-found",
"NotFound {segments:?}"
}
}
}