From 4dcf303f42049f0cab343a0892a995c717960764 Mon Sep 17 00:00:00 2001 From: mc1098 Date: Sun, 21 Nov 2021 07:20:19 -0700 Subject: [PATCH 01/15] nested router structure diagram --- website/static/img/nested-router.gif | Bin 0 -> 11958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 website/static/img/nested-router.gif diff --git a/website/static/img/nested-router.gif b/website/static/img/nested-router.gif new file mode 100644 index 0000000000000000000000000000000000000000..b0101879e37750ff8496e1a31c07e15676f1a630 GIT binary patch literal 11958 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 aeEV4M0m}cqxjO%KcnB(>X>Jh$GXDe7Y?dPc literal 0 HcmV?d00001 From 4fdc97f403b711a15b9379cda83ffad1a3d8837c Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 23 Nov 2021 07:49:54 -0700 Subject: [PATCH 02/15] add Redirect, nested router documentation. --- website/docs/concepts/router.md | 273 ++++++++++++++++++++++++++++++-- 1 file changed, 259 insertions(+), 14 deletions(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 53d6176b0d9..72e8d0735bf 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -3,13 +3,20 @@ title: "Router" description: "Yew's official router" --- -[The router on crates.io](https://crates.io/crates/yew-router) - Routers in Single Page Applications (SPA) handle displaying different pages depending on what the URL is. Instead of the default behavior of requesting a different remote resource when a link is clicked, the router instead sets the URL locally to point to a valid route in your application. The router then detects this change and then decides what to render. +Yew provides router support in the `yew-router` crate. To start using it, add the dependency to your `Cargo.toml` + +```toml +yew-router = {git = "https://github.com/yewstack/yew.git"} +``` + +The utilities needed are provided under `yew_router::prelude`, + + ## Usage You start by defining a `Route`. @@ -37,7 +44,7 @@ In case no path is matched, the router navigates to the path with `not_found` at nothing is rendered, and a message is logged to console stating that no route was matched. ```rust -use yew_router::prelude::*;; +use yew_router::prelude::*; use yew::prelude::*; #[derive(Clone, Routable, PartialEq)] @@ -55,7 +62,7 @@ enum Route { fn secure() -> Html { let history = use_history().unwrap(); - let onclick_callback = Callback::from(move |_| history.push(Route::Home)); + let onclick_callback = Callback::once(move |_| history.push(Route::Home)); html! {

{ "Secure" }

@@ -89,7 +96,7 @@ When using `yew-router` in browser environment, `` is recommended. ```rust -use yew_router::prelude::*;; +use yew_router::prelude::*; use yew::prelude::*; #[derive(Clone, Routable, PartialEq)] @@ -141,7 +148,7 @@ fn app() -> Html { It is also possible to extract information from a route. ```rust -# use yew_router::prelude::*; +use yew_router::prelude::*; #[derive(Clone, Routable, PartialEq)] enum Route { #[at("/")] @@ -152,6 +159,8 @@ enum Route { } ``` + + You can then access the post's id inside `` and forward it to the appropriate component via properties. ```rust ,ignore @@ -164,11 +173,11 @@ fn switch(routes: &Route) -> Html { } ``` -Linking to a specific post is as easy as passing the variant to `Link`: - -```rust ,ignore - to={Route::Post { id: "new-yew-release".to_string() }}>{ "Yew v0.19 out now!" }> -``` +:::note +You can have a normal `Post` variant instead of `Post {id: String}` too. For example when `Post` is rendered with +another router, the field can then be redundant as the other router is able to match and handle the path. See the +[Nested Router](#nested-router) section below for details +::: For more information about the route syntax and how to bind parameters, check out [route-recognizer](https://docs.rs/route-recognizer/0.3.1/route_recognizer/#routing-params). @@ -198,16 +207,164 @@ additional functionality that is not available in `AnyHistory` and ### Navigation -To navigate between pages, use either a `Link` component (which renders a `` element), the `history.push` function, or the `history.replace` function, which replaces the current page in the user's browser history instead of pushing a new one onto the stack. +`yew_router` provides a handful of tools to work with navigation. + +#### Link + +A `` renders as an `` element, the `onclick` event handler will call +[preventDefault](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) push the targeted page +to the history and render the desired page, which is what should be expected from a Single Page App. The default onclick +of a normal anchor element would reload the page. + +The `` element also passes its children to the `` element. Consider it a replacement of `` for in-app +routes. Except you supply a `to` attribute instead of a `href`. An example usage: + +```rust ,ignore + to={Route::Home}>{ "click here to go home" }> +``` + +Struct variants work as expected too: + +```rust ,ignore + to={Route::Post { id: "new-yew-release".to_string() }}>{ "Yew v0.19 out now!" }> +``` + +#### History API + +History API is provided for both functional components and normal components. +They can enable callbacks to change the route. An `AnyHistory` instance can be obtained in either cases to manipulate +the route. + + + + + +##### functional components + +For functional components, the `use_history` hook re-renders the component and returns the current route whenever the +history changes. Here's how to implement a button that navigates to the `Home` route when clicked. + +```rust +#[function_component(MyComponent)] +pub fn my_component() -> Html { + + let history = use_history().unwrap(); + + let onclick = Callback::once(move |_| history.push(Route::Home)); + + html! { + <> + + + } +} +``` +:::tip +The example here uses `Callback::once`. Use a normal callback if the target route can be the same with the route +the component is in. For example when you have a logo button on every page the that goes back to home when clicked, +clicking that button twice on home page causes the code to panic because the second click pushes an identical Home route +and won't trigger a re-render of the element. + +In other words, only use `Callback::once` when you are sure the target route is different. Or use normal callbacks only +to be safe. +::: + + +If you want to replace the current history instead of pushing a new history onto the stack, use `history.replace()` +instead of `history.push()`. + +You may notice `history` has to move into the callback, so it can't be used again for other callbacks. Luckily `history` +implements `Clone`, here's for example how to have multiple buttons to different routes: + +```rust +#[function_component(NavItems)] +pub fn nav_items() -> Html { + + let history = use_history().unwrap(); + + let go_home_button = { + let onclick = Callback::once({ + let history = history.clone(); + move |_| history.push(Route::Home) + }); + html!{} + }; + + let go_to_first_post_button = { + let onclick = Callback::once({ + let history = history.clone(); + let onclick = Callback::once(move |_| history.push(Route::Post{id: "first-post".to_string()})); + }); + + html!{} + }; + + let go_to_secure_button = { + let onclick = Callback::once(move |_| history.push(Route::Secure)); + html!{} + }; + + html! { + <> + {go_home_button} + {go_to_first_post_button} + {go_to_secure_button} + + } +} +``` + +##### normal components + +For normal components, the `AnyHistory` instance can be obtained through the `ctx.link().history()` API. The +rest is identical with the functional component case. Here's an example of a view function that renders a single button. + +```rust ,ignore +fn view(&self, ctx: &Context) -> Html { + let history = ctx.link().history().unwrap(); + let onclick = Callback::once(move |_| history.push(MainRoute::Home)); + html!{} +} +``` + +#### Redirect + +`yew-router` also provides a `` element in the prelude. +It can be used to achieve similar effects as the history API. The element accepts a +`to` attribute as the target route. +When a `` element is rendered, it internally calls `history.push()` and changes the route. +Here is an example: + +```rust +#[function_component(SomePage)] +fn some_page() -> Html { + // made-up hook `use_user` + let user = match use_user() { + Some(user) => user, + // an early return that redirects to the login page + // technicality: `Redirect` actually renders an empty html. But since it also pushes history, the target page + // shows up immediately. Consider it a "side-effect" component. + None => return html! { }, + }; + // ... actual page content. +} +``` +:::tip `Redirect` vs `history`, which to use +The history API is the only way to manipulate route in callbacks. +While `` can be used for early returns in a component. +You might also want to use `` in other +non-component context, for example in the switch function of a [Nested Router](#nested-router). +::: + ### Listening to Changes #### Functional components -Simply use available hooks `use_history`, `use_location` and `use_route`. +Alongside the `use_history` hook, there's also `use_location` and `use_route`. Your components will re-render when provided values change. -#### Struct components +#### Normal components In order to react on route changes, you can pass a callback closure to the `listen()` method of `AnyHistory`. @@ -229,6 +386,8 @@ fn create(ctx: &Context) -> Self { } ``` +`ctx.link().location()` and `ctx.link().route::()` can also be used to retrieve the location and the route once. + ### Query Parameters #### Specifying query parameters when navigating @@ -242,6 +401,92 @@ In its simplest form this is just a `HashMap` containing string pairs. `location.query` is used to obtain the query parameters. It uses `serde` to deserialize the parameters from query string in the URL. +## Nested Router + +Nested router can be useful when the app grows larger. +Consider the following router structure: + + + +![nested router diagram](/img/nested-router.gif) + +It can be implemented with the following code: + +```rust +#[derive(Clone, Routable, PartialEq)] +enum MainRoute { + #[at("/")] + Home, + #[at("/news")] + News, + #[at("/contact")] + Contact, + #[at("/settings/:s")] + Settings, + #[not_found] + #[at("/404")] + NotFound, +} + +#[derive(Clone, Routable, PartialEq)] +enum SettingsRoute { + #[at("/settings/profile")] + Profile, + #[at("/settings/friends")] + Friends, + #[at("/settings/theme")] + Theme, + #[not_found] + #[at("/settings/404")] + NotFound, +} + +fn switch_main(route: &MainRoute)-> Html{ + match route{ + MainRoute::Home => html!{

{"Home"}

}, + MainRoute::News => html!{

{"News"}

}, + MainRoute::Contact => html!{

{"Contact"}

}, + MainRoute::Settings => html!{ + render={Switch::render(switch_settings)} /> + }, + MainRoute::NotFound => html!{

{"Not Found"}

}, + } +} + +fn switch_settings(route: &SettingsRoute) -> Html{ + match route{ + SettingsRoute::Profile => html!{

{"Profile"}

}, + SettingsRoute::Friends => html!{

{"Friends"}

}, + SettingsRoute::Theme => html!{

{"Theme"}

}, + SettingsRoute::NotFound => html!{

{"Settings Not Found"}

} + } +} + +#[function_component(App)] +pub fn app() -> Html { + html! { + + render={Switch::render(switch_main)} /> + + } +} +``` + ## Relevant examples - [Router](https://github.com/yewstack/yew/tree/master/examples/router) From 49fa42ad71b34d661efbffd4e0ddd78acacc01fa Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 23 Nov 2021 08:03:03 -0700 Subject: [PATCH 03/15] add reminder --- website/docs/concepts/router.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 72e8d0735bf..22170913ec8 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -10,6 +10,7 @@ The router then detects this change and then decides what to render. Yew provides router support in the `yew-router` crate. To start using it, add the dependency to your `Cargo.toml` +<--! Reminder: fix this when we release a new version of yew --> ```toml yew-router = {git = "https://github.com/yewstack/yew.git"} ``` @@ -160,7 +161,6 @@ enum Route { ``` - You can then access the post's id inside `` and forward it to the appropriate component via properties. ```rust ,ignore @@ -236,9 +236,6 @@ They can enable callbacks to change the route. An `AnyHistory` instance can be o the route. - - - ##### functional components For functional components, the `use_history` hook re-renders the component and returns the current route whenever the From 1f2a0a3de7610894ee9e2e2955193e9652493d79 Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 23 Nov 2021 08:13:44 -0700 Subject: [PATCH 04/15] fix the comment, duh --- website/docs/concepts/router.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 22170913ec8..11380211952 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -10,7 +10,7 @@ The router then detects this change and then decides what to render. Yew provides router support in the `yew-router` crate. To start using it, add the dependency to your `Cargo.toml` -<--! Reminder: fix this when we release a new version of yew --> + ```toml yew-router = {git = "https://github.com/yewstack/yew.git"} ``` From b9a1168ada5532594a4ddc1044ac26d440edd811 Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 23 Nov 2021 08:22:37 -0700 Subject: [PATCH 05/15] snippets get tested too unless ignored --- website/docs/concepts/router.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 11380211952..df4166c3420 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -63,11 +63,11 @@ enum Route { fn secure() -> Html { let history = use_history().unwrap(); - let onclick_callback = Callback::once(move |_| history.push(Route::Home)); + let onclick = Callback::once(move |_| history.push(Route::Home)); html! {

{ "Secure" }

- +
} } @@ -115,11 +115,11 @@ enum Route { fn secure() -> Html { let history = use_history().unwrap(); - let onclick_callback = Callback::from(move |_| history.push(Route::Home)); + let onclick_callback = Callback::once(move |_| history.push(Route::Home)); html! {

{ "Secure" }

- +
} } @@ -241,7 +241,7 @@ the route. For functional components, the `use_history` hook re-renders the component and returns the current route whenever the history changes. Here's how to implement a button that navigates to the `Home` route when clicked. -```rust +```rust ,ignore #[function_component(MyComponent)] pub fn my_component() -> Html { @@ -273,7 +273,7 @@ instead of `history.push()`. You may notice `history` has to move into the callback, so it can't be used again for other callbacks. Luckily `history` implements `Clone`, here's for example how to have multiple buttons to different routes: -```rust +```rust ,ignore #[function_component(NavItems)] pub fn nav_items() -> Html { @@ -332,7 +332,7 @@ It can be used to achieve similar effects as the history API. The element accept When a `` element is rendered, it internally calls `history.push()` and changes the route. Here is an example: -```rust +```rust ,ignore #[function_component(SomePage)] fn some_page() -> Html { // made-up hook `use_user` @@ -424,7 +424,7 @@ graph { It can be implemented with the following code: -```rust +```rust ,ignore #[derive(Clone, Routable, PartialEq)] enum MainRoute { #[at("/")] From 847f6d445e465f769ec77f5b44157f3eb9dbad21 Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 23 Nov 2021 08:28:40 -0700 Subject: [PATCH 06/15] fix inconsistent var name in snippet --- website/docs/concepts/router.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index df4166c3420..d4a0885db6f 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -115,7 +115,7 @@ enum Route { fn secure() -> Html { let history = use_history().unwrap(); - let onclick_callback = Callback::once(move |_| history.push(Route::Home)); + let onclick = Callback::once(move |_| history.push(Route::Home)); html! {

{ "Secure" }

From fe5657ea32256f52107eab82f90afebd18429372 Mon Sep 17 00:00:00 2001 From: matt Date: Tue, 23 Nov 2021 22:29:06 -0700 Subject: [PATCH 07/15] Add redirect to nested router example normal component -> struct component --- website/docs/concepts/router.md | 30 ++++++++++++++++----------- website/static/img/nested-router.gif | Bin 11958 -> 11640 bytes 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index d4a0885db6f..36897617563 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -236,7 +236,7 @@ They can enable callbacks to change the route. An `AnyHistory` instance can be o the route. -##### functional components +##### Functional Components For functional components, the `use_history` hook re-renders the component and returns the current route whenever the history changes. Here's how to implement a button that navigates to the `Home` route when clicked. @@ -311,7 +311,7 @@ pub fn nav_items() -> Html { } ``` -##### normal components +##### Struct Components For normal components, the `AnyHistory` instance can be obtained through the `ctx.link().history()` API. The rest is identical with the functional component case. Here's an example of a view function that renders a single button. @@ -348,7 +348,7 @@ fn some_page() -> Html { ``` :::tip `Redirect` vs `history`, which to use The history API is the only way to manipulate route in callbacks. -While `` can be used for early returns in a component. +While `` can be used as return values in a component. You might also want to use `` in other non-component context, for example in the switch function of a [Nested Router](#nested-router). ::: @@ -356,12 +356,12 @@ non-component context, for example in the switch function of a [Nested Router](# ### Listening to Changes -#### Functional components +#### Functional Components -Alongside the `use_history` hook, there's also `use_location` and `use_route`. +Alongside the `use_history` hook, there are also `use_location` and `use_route`. Your components will re-render when provided values change. -#### Normal components +#### Struct Components In order to react on route changes, you can pass a callback closure to the `listen()` method of `AnyHistory`. @@ -408,23 +408,29 @@ The graph is produced with the following code, with graphviz. To reproduce. Save the code in a file, say `input.dot`, And run `$ dot -Tgif input.dot -o nested-router.gif` -graph { +digraph { node [shape=box style=rounded] - Home; News; Contact; "Not Found"; Profile; Friends; Theme; "Settings Not Found"; + Home; News; Contact; "Not Found"; Profile; Friends; Theme; SettingsNotFound [label="Not Found"]; node [fillcolor=lightblue style="filled, rounded"] "Main Router"; "Settings Router"; - "Main Router" -- {Home News Contact "Not Found" "Settings Router"} - "Settings Router" -- {Profile Friends Theme "Settings Not Found"} + "Main Router" -> {Home News Contact "Not Found" "Settings Router"} [arrowhead=none] + "Settings Router" -> {SettingsNotFound Profile Friends Theme } [arrowhead=none] + SettingsNotFound -> "Not Found" [constraint=false] } --> ![nested router diagram](/img/nested-router.gif) +The nested `SettingsRouter` handles all urls that start with `/settings`. Additionally, it redirects urls that are not +matched to the main `NotFound` route. So `/settings/gibberish` will redirect to `/404`. + It can be implemented with the following code: -```rust ,ignore +```rust +use yew::prelude::*; +use yew_router::prelude::*; #[derive(Clone, Routable, PartialEq)] enum MainRoute { #[at("/")] @@ -470,7 +476,7 @@ fn switch_settings(route: &SettingsRoute) -> Html{ SettingsRoute::Profile => html!{

{"Profile"}

}, SettingsRoute::Friends => html!{

{"Friends"}

}, SettingsRoute::Theme => html!{

{"Theme"}

}, - SettingsRoute::NotFound => html!{

{"Settings Not Found"}

} + SettingsRoute::NotFound => html!{ to={MainRoute::NotFound}/>} } } diff --git a/website/static/img/nested-router.gif b/website/static/img/nested-router.gif index b0101879e37750ff8496e1a31c07e15676f1a630..3342335071d15852e3ad124491d2d73635c3c432 100644 GIT binary patch delta 10862 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 EJFp9h=l}o! delta 11183 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 N@9+OVfE5J<06Y1;8)pCj From 8c41a3a49b92e614398781312cf4bff4cefe02d2 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 24 Nov 2021 02:25:03 -0700 Subject: [PATCH 08/15] Document about acceptable types for path segment Document about router behaviour at fail to parse --- packages/yew-router/src/switch.rs | 3 +- website/docs/concepts/router.md | 80 +++++++----------- ...outer-deserialization-failure-behavior.gif | Bin 0 -> 198635 bytes 3 files changed, 32 insertions(+), 51 deletions(-) create mode 100644 website/static/img/router-deserialization-failure-behavior.gif diff --git a/packages/yew-router/src/switch.rs b/packages/yew-router/src/switch.rs index d11d65fe41c..747ca1bc3da 100644 --- a/packages/yew-router/src/switch.rs +++ b/packages/yew-router/src/switch.rs @@ -56,7 +56,8 @@ pub enum Msg { /// A Switch that dispatches route among variants of a [`Routable`]. /// -/// When a route can't be matched, it looks for the route with `not_found` attribute. +/// When a route can't be matched, including when the path is matched but the deserialization fails, +/// it looks for the route with `not_found` attribute. /// If such a route is provided, it redirects to the specified route. /// Otherwise `html! {}` is rendered and a message is logged to console /// stating that no route can be matched. diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 36897617563..86e427b23fc 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -44,52 +44,6 @@ browser's current URL and passes it to the `render` callback. The callback then In case no path is matched, the router navigates to the path with `not_found` attribute. If no route is specified, nothing is rendered, and a message is logged to console stating that no route was matched. -```rust -use yew_router::prelude::*; -use yew::prelude::*; - -#[derive(Clone, Routable, PartialEq)] -enum Route { - #[at("/")] - Home, - #[at("/secure")] - Secure, - #[not_found] - #[at("/404")] - NotFound, -} - -#[function_component(Secure)] -fn secure() -> Html { - let history = use_history().unwrap(); - - let onclick = Callback::once(move |_| history.push(Route::Home)); - html! { -
-

{ "Secure" }

- -
- } -} - -fn switch(routes: &Route) -> Html { - match routes { - Route::Home => html! {

{ "Home" }

}, - Route::Secure => html! { - - }, - Route::NotFound => html! {

{ "404" }

}, - } -} - -#[function_component(Main)] -fn app() -> Html { - html! { - render={Switch::render(switch)} /> - } -} -``` - Finally, you need to register the `` component as a context. `` provides session history information to its children. @@ -160,7 +114,6 @@ enum Route { } ``` - You can then access the post's id inside `` and forward it to the appropriate component via properties. ```rust ,ignore @@ -173,12 +126,39 @@ fn switch(routes: &Route) -> Html { } ``` -:::note -You can have a normal `Post` variant instead of `Post {id: String}` too. For example when `Post` is rendered with -another router, the field can then be redundant as the other router is able to match and handle the path. See the +:::note +You can have a normal `Post` variant instead of `Post {id: String}` too. For example when `Post` is rendered +with another router, the field can then be redundant as the other router is able to match and handle the path. See the [Nested Router](#nested-router) section below for details ::: +Note the fields must implement `Clone + PartialEq` as part of the `Route` enum. They must also implement +`std::fmt::Display` and `std::str::FromStr` for serialization and deserialization. Primitive types like integer, float, +and String already satisfy the requirements. + +In case when the form of the path matches, but the deserialization fails (as per `FromStr`). The router will consider +the route as unmatched and try to render the not found route (or a blank page if the not found route is unspecified). +This can be surprising. + +Consider this example: + +```rust +#[derive(Clone, Routable, PartialEq)] +enum Route { + #[at("/news/:id")] + News { id: u8 }, + #[not_found] + #[at("/404")] + NotFound, +} +// switch function renders News and id as is. Omitted here. +``` + +When the segment goes over 255, `u8::from_str()` fails with `ParseIntError`, the router will then consider the route +unmatched. + +![router deserialization failure behavior](/img/router-deserialization-failure-behavior.gif) + For more information about the route syntax and how to bind parameters, check out [route-recognizer](https://docs.rs/route-recognizer/0.3.1/route_recognizer/#routing-params). ### History and Location diff --git a/website/static/img/router-deserialization-failure-behavior.gif b/website/static/img/router-deserialization-failure-behavior.gif new file mode 100644 index 0000000000000000000000000000000000000000..35005be058e8acd6952ac0f6770bdafa065fef79 GIT binary patch literal 198635 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
}aN^ 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

qm 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

GO=;rLPj)gj*> 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 Date: Wed, 24 Nov 2021 02:25:47 -0700 Subject: [PATCH 09/15] add missing ignore to snippet --- website/docs/concepts/router.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 86e427b23fc..8a5d5c4419f 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -142,7 +142,7 @@ This can be surprising. Consider this example: -```rust +```rust ,ignore #[derive(Clone, Routable, PartialEq)] enum Route { #[at("/news/:id")] From da8b8ba71e3a78ec3de00a54a234d31d1f352ae9 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 24 Nov 2021 03:09:25 -0700 Subject: [PATCH 10/15] typo --- website/docs/concepts/router.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 8a5d5c4419f..53b50b0f4c3 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -278,7 +278,7 @@ pub fn nav_items() -> Html { let go_to_secure_button = { let onclick = Callback::once(move |_| history.push(Route::Secure)); - html!{} + html!{} }; html! { From 3a0826e51a52909bf981b11c727be31cd87a7541 Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 24 Nov 2021 03:10:11 -0700 Subject: [PATCH 11/15] normal -> struct --- website/docs/concepts/router.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 53b50b0f4c3..8bd3c2cd450 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -211,7 +211,7 @@ Struct variants work as expected too: #### History API -History API is provided for both functional components and normal components. +History API is provided for both functional components and struct components. They can enable callbacks to change the route. An `AnyHistory` instance can be obtained in either cases to manipulate the route. @@ -293,7 +293,7 @@ pub fn nav_items() -> Html { ##### Struct Components -For normal components, the `AnyHistory` instance can be obtained through the `ctx.link().history()` API. The +For struct components, the `AnyHistory` instance can be obtained through the `ctx.link().history()` API. The rest is identical with the functional component case. Here's an example of a view function that renders a single button. ```rust ,ignore From 8e767f34ee9bcf9cd8c929b3e2bead22f4c8c14f Mon Sep 17 00:00:00 2001 From: matt Date: Wed, 24 Nov 2021 19:39:33 -0700 Subject: [PATCH 12/15] reformat codeblock and the markdown functional comp -> function comp consistent code snippet style removed two ignores --- website/docs/concepts/router.md | 188 +++++++++++++++++--------------- 1 file changed, 98 insertions(+), 90 deletions(-) diff --git a/website/docs/concepts/router.md b/website/docs/concepts/router.md index 8bd3c2cd450..9c236631b1a 100644 --- a/website/docs/concepts/router.md +++ b/website/docs/concepts/router.md @@ -3,20 +3,20 @@ title: "Router" description: "Yew's official router" --- -Routers in Single Page Applications (SPA) handle displaying different pages depending on what the URL is. -Instead of the default behavior of requesting a different remote resource when a link is clicked, -the router instead sets the URL locally to point to a valid route in your application. -The router then detects this change and then decides what to render. +Routers in Single Page Applications (SPA) handle displaying different pages depending on what the URL is. Instead of the +default behavior of requesting a different remote resource when a link is clicked, the router instead sets the URL +locally to point to a valid route in your application. The router then detects this change and then decides what to +render. Yew provides router support in the `yew-router` crate. To start using it, add the dependency to your `Cargo.toml` + ```toml -yew-router = {git = "https://github.com/yewstack/yew.git"} +yew-router = { git = "https://github.com/yewstack/yew.git" } ``` -The utilities needed are provided under `yew_router::prelude`, - +The utilities needed are provided under `yew_router::prelude`, ## Usage @@ -39,16 +39,15 @@ enum Route { } ``` -A `Route` is paired with a `` component, which finds the first variant whose path matches the -browser's current URL and passes it to the `render` callback. The callback then decides what to render. -In case no path is matched, the router navigates to the path with `not_found` attribute. If no route is specified, -nothing is rendered, and a message is logged to console stating that no route was matched. +A `Route` is paired with a `` component, which finds the first variant whose path matches the browser's +current URL and passes it to the `render` callback. The callback then decides what to render. In case no path is +matched, the router navigates to the path with `not_found` attribute. If no route is specified, nothing is rendered, and +a message is logged to console stating that no route was matched. Finally, you need to register the `` component as a context. `` provides session history information to its children. -When using `yew-router` in browser environment, `` is -recommended. +When using `yew-router` in browser environment, `` is recommended. ```rust use yew_router::prelude::*; @@ -104,6 +103,7 @@ It is also possible to extract information from a route. ```rust use yew_router::prelude::*; + #[derive(Clone, Routable, PartialEq)] enum Route { #[at("/")] @@ -126,7 +126,7 @@ fn switch(routes: &Route) -> Html { } ``` -:::note +:::note You can have a normal `Post` variant instead of `Post {id: String}` too. For example when `Post` is rendered with another router, the field can then be redundant as the other router is able to match and handle the path. See the [Nested Router](#nested-router) section below for details @@ -159,20 +159,20 @@ unmatched. ![router deserialization failure behavior](/img/router-deserialization-failure-behavior.gif) -For more information about the route syntax and how to bind parameters, check out [route-recognizer](https://docs.rs/route-recognizer/0.3.1/route_recognizer/#routing-params). +For more information about the route syntax and how to bind parameters, check +out [route-recognizer](https://docs.rs/route-recognizer/0.3.1/route_recognizer/#routing-params). ### History and Location -The router provides a universal `History` and `Location` struct which -can be used to access routing information. They can be retrieved by -hooks or convenient functions on `ctx.link()`. +The router provides a universal `History` and `Location` struct which can be used to access routing information. They +can be retrieved by hooks or convenient functions on `ctx.link()`. They have a couple flavours: #### `AnyHistory` and `AnyLocation` -These types are available with all routers and should be used whenever possible. -They implement a subset of `window.history` and `window.location`. +These types are available with all routers and should be used whenever possible. They implement a subset +of `window.history` and `window.location`. You can access them using the following hooks: @@ -181,8 +181,8 @@ You can access them using the following hooks: #### `BrowserHistory` and `BrowserLocation` -These are only available when `` is used. They provide -additional functionality that is not available in `AnyHistory` and +These are only available when `` is used. They provide additional functionality that is not available +in `AnyHistory` and `AnyLocation` (such as: `location.host`). ### Navigation @@ -192,9 +192,9 @@ additional functionality that is not available in `AnyHistory` and #### Link A `` renders as an `` element, the `onclick` event handler will call -[preventDefault](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) push the targeted page -to the history and render the desired page, which is what should be expected from a Single Page App. The default onclick -of a normal anchor element would reload the page. +[preventDefault](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) push the targeted page to the +history and render the desired page, which is what should be expected from a Single Page App. The default onclick of a +normal anchor element would reload the page. The `` element also passes its children to the `` element. Consider it a replacement of `` for in-app routes. Except you supply a `to` attribute instead of a `href`. An example usage: @@ -211,22 +211,21 @@ Struct variants work as expected too: #### History API -History API is provided for both functional components and struct components. -They can enable callbacks to change the route. An `AnyHistory` instance can be obtained in either cases to manipulate -the route. +History API is provided for both function components and struct components. They can enable callbacks to change the +route. An `AnyHistory` instance can be obtained in either cases to manipulate the route. +##### Function Components -##### Functional Components - -For functional components, the `use_history` hook re-renders the component and returns the current route whenever the +For function components, the `use_history` hook re-renders the component and returns the current route whenever the history changes. Here's how to implement a button that navigates to the `Home` route when clicked. -```rust ,ignore +```rust +use yew::prelude::*; +use yew_router::prelude::*; + #[function_component(MyComponent)] pub fn my_component() -> Html { - let history = use_history().unwrap(); - let onclick = Callback::once(move |_| history.push(Route::Home)); html! { @@ -236,49 +235,52 @@ pub fn my_component() -> Html { } } ``` + :::tip The example here uses `Callback::once`. Use a normal callback if the target route can be the same with the route the component is in. For example when you have a logo button on every page the that goes back to home when clicked, clicking that button twice on home page causes the code to panic because the second click pushes an identical Home route and won't trigger a re-render of the element. -In other words, only use `Callback::once` when you are sure the target route is different. Or use normal callbacks only +In other words, only use `Callback::once` when you are sure the target route is different. Or use normal callbacks only to be safe. ::: - -If you want to replace the current history instead of pushing a new history onto the stack, use `history.replace()` +If you want to replace the current history instead of pushing a new history onto the stack, use `history.replace()` instead of `history.push()`. -You may notice `history` has to move into the callback, so it can't be used again for other callbacks. Luckily `history` +You may notice `history` has to move into the callback, so it can't be used again for other callbacks. Luckily `history` implements `Clone`, here's for example how to have multiple buttons to different routes: -```rust ,ignore +```rust +use yew::prelude::*; +use yew_router::prelude::*; + #[function_component(NavItems)] pub fn nav_items() -> Html { - let history = use_history().unwrap(); let go_home_button = { - let onclick = Callback::once({ - let history = history.clone(); - move |_| history.push(Route::Home) - }); - html!{} + let history = history.clone(); + let onclick = Callback::once(move |_| history.push(Route::Home)); + html! { + + } }; let go_to_first_post_button = { - let onclick = Callback::once({ - let history = history.clone(); - let onclick = Callback::once(move |_| history.push(Route::Post{id: "first-post".to_string()})); - }); - - html!{} + let history = history.clone(); + let onclick = Callback::once(move |_| history.push(Route::Post { id: "first-post".to_string() })); + html! { + + } }; let go_to_secure_button = { let onclick = Callback::once(move |_| history.push(Route::Secure)); - html!{} + html! { + + } }; html! { @@ -293,24 +295,25 @@ pub fn nav_items() -> Html { ##### Struct Components -For struct components, the `AnyHistory` instance can be obtained through the `ctx.link().history()` API. The -rest is identical with the functional component case. Here's an example of a view function that renders a single button. +For struct components, the `AnyHistory` instance can be obtained through the `ctx.link().history()` API. The rest is +identical with the function component case. Here's an example of a view function that renders a single button. ```rust ,ignore fn view(&self, ctx: &Context) -> Html { let history = ctx.link().history().unwrap(); let onclick = Callback::once(move |_| history.push(MainRoute::Home)); - html!{} + html!{ + + } } ``` #### Redirect -`yew-router` also provides a `` element in the prelude. -It can be used to achieve similar effects as the history API. The element accepts a -`to` attribute as the target route. -When a `` element is rendered, it internally calls `history.push()` and changes the route. -Here is an example: +`yew-router` also provides a `` element in the prelude. It can be used to achieve similar effects as the +history API. The element accepts a +`to` attribute as the target route. When a `` element is rendered, it internally calls `history.push()` and +changes the route. Here is an example: ```rust ,ignore #[function_component(SomePage)] @@ -321,32 +324,34 @@ fn some_page() -> Html { // an early return that redirects to the login page // technicality: `Redirect` actually renders an empty html. But since it also pushes history, the target page // shows up immediately. Consider it a "side-effect" component. - None => return html! { }, + None => return html! { + + }, }; // ... actual page content. } ``` -:::tip `Redirect` vs `history`, which to use -The history API is the only way to manipulate route in callbacks. -While `` can be used as return values in a component. -You might also want to use `` in other + +:::tip `Redirect` vs `history`, which to use +The history API is the only way to manipulate route in callbacks. +While `` can be used as return values in a component. You might also want to use `` in other non-component context, for example in the switch function of a [Nested Router](#nested-router). ::: - ### Listening to Changes -#### Functional Components +#### Function Components -Alongside the `use_history` hook, there are also `use_location` and `use_route`. -Your components will re-render when provided values change. +Alongside the `use_history` hook, there are also `use_location` and `use_route`. Your components will re-render when +provided values change. #### Struct Components In order to react on route changes, you can pass a callback closure to the `listen()` method of `AnyHistory`. :::note -The history listener will get unregistered once it is dropped. Make sure to store the handle inside your component state. +The history listener will get unregistered once it is dropped. Make sure to store the handle inside your +component state. ::: ```rust ,ignore @@ -369,19 +374,19 @@ fn create(ctx: &Context) -> Self { #### Specifying query parameters when navigating -In order to specify query parameters when navigating to a new route, use either `history.push_with_query` or the `history.replace_with_query` functions. -It uses `serde` to serialize the parameters into query string for the URL so any type that implements `Serialize` can be passed. -In its simplest form this is just a `HashMap` containing string pairs. +In order to specify query parameters when navigating to a new route, use either `history.push_with_query` or +the `history.replace_with_query` functions. It uses `serde` to serialize the parameters into query string for the URL so +any type that implements `Serialize` can be passed. In its simplest form this is just a `HashMap` containing string +pairs. #### Obtaining query parameters for current route -`location.query` is used to obtain the query parameters. -It uses `serde` to deserialize the parameters from query string in the URL. +`location.query` is used to obtain the query parameters. It uses `serde` to deserialize the parameters from query string +in the URL. ## Nested Router -Nested router can be useful when the app grows larger. -Consider the following router structure: +Nested router can be useful when the app grows larger. Consider the following router structure: