pub struct Router<SW: Switch + Clone + 'static, STATE: RouterState = ()> { /* private fields */ }Expand description
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, _: &Context<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§
Source§impl<SW, STATE> Router<SW, STATE>
impl<SW, STATE> Router<SW, STATE>
Sourcepub fn render<F: RenderFn<Router<SW, STATE>, SW> + 'static>(
f: F,
) -> Render<SW, STATE>
pub fn render<F: RenderFn<Router<SW, STATE>, SW> + 'static>( f: F, ) -> Render<SW, STATE>
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"},
}
});Sourcepub fn redirect<F: RedirectFn<SW, STATE> + 'static>(
f: F,
) -> Option<Redirect<SW, STATE>>
pub fn redirect<F: RedirectFn<SW, STATE> + 'static>( f: F, ) -> Option<Redirect<SW, STATE>>
Wrap a redirect function so that it can be used by the Router.
Trait Implementations§
Source§impl<STATE, SW> Component for Router<SW, STATE>
impl<STATE, SW> Component for Router<SW, STATE>
Source§type Message = Msg<STATE>
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.Source§type Properties = Props<STATE, SW>
type Properties = Props<STATE, SW>
The Component’s properties. Read more
Source§fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool
fn update(&mut self, ctx: &Context<Self>, msg: Self::Message) -> bool
Called when a new message is sent to the component via it’s scope. Read more
Source§fn view(&self, ctx: &Context<Self>) -> VNode
fn view(&self, ctx: &Context<Self>) -> VNode
Components define their visual layout using a JSX-style syntax through the use of the
html! procedural macro. The full guide to using the macro can be found in Yew’s
documentation. Read moreSource§fn changed(&mut self, ctx: &Context<Self>) -> bool
fn changed(&mut self, ctx: &Context<Self>) -> bool
Called when properties passed to the component change Read more
Auto Trait Implementations§
impl<SW, STATE> Freeze for Router<SW, STATE>where
SW: Freeze,
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§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoPropValue<Option<T>> for T
impl<T> IntoPropValue<Option<T>> for T
Source§fn into_prop_value(self) -> Option<T>
fn into_prop_value(self) -> Option<T>
Convert
self to a value of a Properties struct.Source§impl<T> IntoPropValue<T> for T
impl<T> IntoPropValue<T> for T
Source§fn into_prop_value(self) -> T
fn into_prop_value(self) -> T
Convert
self to a value of a Properties struct.