[][src]Struct yew_router::router::Router

pub struct Router<SW: Switch + Clone + 'static, STATE: RouterState = ()> { /* fields omitted */ }

Rendering control flow component.

Example

use yew::{prelude::*, virtual_dom::VNode};
use yew_router::{router::Router, Switch};

pub enum Msg {}

pub struct Model {}
impl Component for Model {
    //...

    fn view(&self) -> VNode {
        html! {
        <Router<S>
           render = Router::render(|switch: S| {
               match switch {
                   S::Variant => html!{"variant route was matched"},
               }
           })
        />
        }
    }
}

#[derive(Switch, Clone)]
enum S {
    #[to = "/v"]
    Variant,
}

Implementations

impl<SW, STATE> Router<SW, STATE> where
    STATE: RouterState,
    SW: Switch + Clone + 'static, 
[src]

pub fn render<F: RenderFn<Router<SW, STATE>, SW> + 'static>(
    f: F
) -> Render<SW, STATE>
[src]

Wrap a render closure so that it can be used by the Router.

Example


let render: Render<S> = Router::render(|switch: S| -> Html {
    match switch {
        S::Variant => html! {"Variant"},
    }
});

pub fn redirect<F: RedirectFn<SW, STATE> + 'static>(
    f: F
) -> Option<Redirect<SW, STATE>>
[src]

Wrap a redirect function so that it can be used by the Router.

Trait Implementations

impl<STATE, SW> Component for Router<SW, STATE> where
    STATE: RouterState,
    SW: Switch + Clone + 'static, 
[src]

type Message = Msg<STATE>

Messages are used to make Components dynamic and interactive. Simple Component's can declare their Message type to be (). Complex Component's commonly use an enum to declare multiple Message types. Read more

type Properties = Props<STATE, SW>

Properties are the inputs to a Component and should not mutated within a Component. They are passed to a Component using a JSX-style syntax. # use yew::{Html, Component, Properties, ComponentLink, html}; # struct Model; # #[derive(Clone, Properties)] # struct Props { # prop: String, # } # impl Component for Model { # type Message = ();type Properties = Props; # fn create(props: Self::Properties,link: ComponentLink<Self>) -> Self {unimplemented!()} # fn update(&mut self,msg: Self::Message) -> bool {unimplemented!()} # fn change(&mut self, _: Self::Properties) -> bool {unimplemented!()} # fn view(&self) -> Html { html! { <Model prop="value" /> } # }} Read more

impl<SW: Debug + Switch + Clone + 'static, STATE: Debug + RouterState> Debug for Router<SW, STATE>[src]

Auto Trait Implementations

impl<SW, STATE = ()> !RefUnwindSafe for Router<SW, STATE>

impl<SW, STATE = ()> !Send for Router<SW, STATE>

impl<SW, STATE = ()> !Sync for Router<SW, STATE>

impl<SW, STATE> Unpin for Router<SW, STATE> where
    SW: Unpin

impl<SW, STATE = ()> !UnwindSafe for Router<SW, STATE>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Any for T where
    T: Any

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<COMP> Renderable for COMP where
    COMP: Component
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.