Jonathan Kelley 75fa7b4aa6 fix: make tests pass 3 سال پیش
..
examples 3dc0e59876 fix: readme and examples syntax 3 سال پیش
src 75fa7b4aa6 fix: make tests pass 3 سال پیش
CHANGELOG.md 2b928372fb Release dioxus-core v0.1.3, dioxus-core-macro v0.1.2, dioxus-html v0.1.0, dioxus-desktop v0.0.0, dioxus-hooks v0.1.3, dioxus-liveview v0.1.0, dioxus-mobile v0.0.0, dioxus-router v0.1.0, dioxus-ssr v0.1.0, dioxus-web v0.0.0, dioxus v0.1.1 3 سال پیش
Cargo.toml ad4a0eb319 wip: add more svg elements, update readme 3 سال پیش
README.md 3dc0e59876 fix: readme and examples syntax 3 سال پیش

README.md

Router hook for Dioxus apps

Dioxus-router provides a use_router hook that returns a different value depending on the route. The router is generic over any value, however it makes sense to return a different set of VNodes and feed them into the App's return VNodes.

Using the router should feel similar to tide's routing framework where an "address" book is assembled at the head of the app.

Here's an example of how to use the router hook:

#[derive(Clone, PartialEq, Serialize, Deserialize, Routable)]
enum AppRoute {
    Home, 
    Posts,
    NotFound
}

static App: Component = |cx| {
    let route = use_router(cx, AppRoute::parse);
    
    match route {
        AppRoute::Home => rsx!(cx, Home {})
        AppRoute::Posts => rsx!(cx, Posts {})
        AppRoute::Notfound => rsx!(cx, Notfound {})
    }
};

Adding links into your app:

static Leaf: Component = |cx| {
    rsx!(cx, div { 
        Link { to: AppRoute::Home } 
    })
}

Currently, the router is only supported in a web environment, but we plan to add 1st-party support via the context API when new renderers are available.