123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- use dioxus_core::prelude::*;
- use dioxus_core_macro::*;
- use dioxus_html as dioxus_elements;
- use dioxus_router::*;
- fn main() {
- console_error_panic_hook::set_once();
- dioxus_web::launch(App, |c| c);
- }
- #[derive(Clone, Debug, PartialEq)]
- enum Route {
- Home,
- About,
- NotFound,
- }
- static App: FC<()> = |cx, props| {
- let route = use_router(cx, Route::parse);
- match route {
- Route::Home => rsx!(cx, div { "Home" }),
- Route::About => rsx!(cx, div { "About" }),
- Route::NotFound => rsx!(cx, div { "NotFound" }),
- }
- };
- impl ToString for Route {
- fn to_string(&self) -> String {
- match self {
- Route::Home => "/".to_string(),
- Route::About => "/about".to_string(),
- Route::NotFound => "/404".to_string(),
- }
- }
- }
- impl Route {
- fn parse(s: &str) -> Self {
- match s {
- "/" => Route::Home,
- "/about" => Route::About,
- _ => Route::NotFound,
- }
- }
- }
|