yew-macro
A framework for making client-side single-page apps
0.23.0
4.7M downloads/mo
#4676 most downloaded on crates.io
yewstack/yew
What this package is like to depend on
Last release 5 months ago
10 Mar 2026
Release timing varies
gaps range from 1 weeks to 2.2 years
Nearly every release is documented
notes for 20 of 21 stable releases
4 versions withdrawn
withdrawn after publishing
7 years old
25 releases · first in 2019
3 releases in the last 12 months
see the full history below
Release timeline
25 releases · Jul 2019 to Mar 2026Releases
latest 25-
0.23.010 Mar 2026Release notes
Open source →bumping from 0.22 should require no code changes for most users.
🚨 Breaking changes
- Performance: use_reducer now skips re-rendering for the same Rc. [@Pascal-So, #3945]
NOTE: Whether this is breaking is arguable. It merely breaks the promise that a dispatch will always cause a re-render. For code that wishes to force re-render, use_force_update helps. Please refer to the migration guide for details.
⚡️ Features
&strandStringcan now be used for props of typeOption<Html>. [@Casheeew, #4020]- Added a
scheduler::flushfunction to reliably finish rendering. Useful in testing as a replacement for timeouts. [@Madoshakalaka, #4044]
🛠 Fixes
- No more broken child re-renders while setting parents' states. [@Madoshakalaka, #4060]
- Ergonomics: Bare
Nones are now allowed forOption<T>props in thehtml!macro. [@Madoshakalaka, #4021]
⚙️ Improvements
- Yew's scheduler now yields to the main thread from time to time. This fix will make the web page more responsive and reduce warnings about long tasks in the console. [@Madoshakalaka, #4033]
Release notes
Open source →bumping from 0.22 should require no code changes for most users.
🚨 Breaking changes
- Performance: use_reducer now skips re-rendering for the same Rc. [@Pascal Sommer, #3945] NOTE: Whether this is breaking is arguable. It merely breaks the promise that a dispatch will always cause a re-render. For code that wishes to force re-render, use_force_update helps. Please refer to the migration guide for details.
⚡️ Features
&strandStringcan now be used for props of typeOption<Html>. [@Cashew, #4020]- Added a
scheduler::flushfunction to reliably finish rendering. Useful in testing as a replacement for timeouts. [@Siyuan Yan, #4044]
🛠 Fixes
- No more broken child re-renders while setting parents' states. [@Siyuan Yan, #4060]
- Ergonomics: Bare
Nones are now allowed forOption<T>props in thehtml!macro. [@Siyuan Yan, #4021]
⚙️ Improvements
- Yew's scheduler now yields to the main thread from time to time. This fix will make the web page more responsive and reduce warnings about long tasks in the console. [@Siyuan Yan, #4033]
- Performance: use_reducer now skips re-rendering for the same Rc. [@Pascal-So, #3945]
-
0.22.128 Feb 2026 withdrawnRelease notes
Open source →🛠 Fixes
- Domslot hydration panic caused by suspension [@Siyuan Yan, #4003]
- Some
Option<T>and&Ttypes can be used as children again. e.g.Option<AttrValue>[@Siyuan Yan, #4005] - Custom hooks now compiles in edition 2024. [@Siyuan Yan, #3992]
- No more stale states in callbacks when multiple events fire rapidly. [@Siyuan Yan, #3988]
- Fixed invisible svg issue on Chrome when included with
from_html_unchecked[@Jason Heard, #3970] - Fixed documentation typo in introduction.mdx. [@devfbe, #3417]
⚙️ Improvements
- Improved SSR example with meta rendering. [@Siyuan Yan, #4011]
- Replaced once_cell with std equivalents (LazyLock, OnceLock). [@Siyuan Yan, #4010]
- Updated rust dependencies.
-
0.22.008 Dec 2025Release notes
Open source →✨ yew 0.22.0
🚨 Breaking changes
- MSRV raised to 1.84.0. [@Madoshakalaka, #3900]
- Allow setting JsValue as properties. [@ranile, #3458]
- Remove deprecated
class=(...)syntax. [@its-the-shrimp, #3497] - Remove ToHtml trait. [@ranile, #3453]
- Make
<textarea>a void element (no children allowed anymore). [@its-the-shrimp, #3465]
⚡️ Features
- Add for-loops to
html!macro. [@its-the-shrimp, #3498] - Rename
#[function_component]to#[component]. [@its-the-shrimp, #3885] - Add
serdefeature to yew. [@its-the-shrimp, #3880] - Add
use_refhook. [@ColonelThirtyTwo, #3548] - Better ImplicitClone ergonomics. Fewer ampersands and stars needed in the
html!macro. [@cecton, #3508, #3431] [@Madoshakalaka, #3892] - Preserve camelCase for known SVG elements. [@Madoshakalaka, #3875]
- Add
inertto the boolean attributes list. [@kawadakk, #3678] - Namespace support for
VRaw. [@finnbear, #3640] to_callbackmethods and From impls to convert reducer dispatchers and state setters to callbacks. [@its-the-shrimp, #3519]- Allows converting
ChildrenRenderer<VNode>andVChildto VList. [@ranile, #3444] - Add
CallbackRefthat takes ref in argument instead of value. [@cecton, #3419] - Allow import of layout_test into 3rd party crates. [@rollo-b2c2, #3463]
- Add WASI support for server-side rendering. [@langyo, #3534]
- Make
UseFutureHandleClone. [@AdamSteinberg1, #3529] - Allow
Selfin prop fields. [@its-the-shrimp, #3569] - Allow boolean in
html!. [@its-the-shrimp, #3441]
🛠 Fixes
- Fix panic when hydrating components with unstable render order. [@WorldSEnder, #3914]
- Fix hydration panic on camelCased elements. [@Madoshakalaka, #3876]
- Fix autocompletion in html macro for rust-analyzer. [@mohe2015, #3829]
- Fix empty lists hydration failure when they were placed next to suspensions and other components. [@WorldSEnder, #3630]
- Silenced non-normalised element name warnings for SVG elements. [@its-the-shrimp, #3769]
- Fixed inconsistent clone() requirement when passing Classes to HTML elements vs. components. [@sshekhar563, #3931]
- Fix svg animation always starting immediately. [@Madoshakalaka, #3892]
- Better diagnostics for byte literals in
html!. [@its-the-shrimp, #3441] - Concise diagnostics for missing props. [@Madoshakalaka, #3873]
- Use the namespace when xmlns attributes are specified. [@jasoncg, #3629]
- Fix generic type missing erros in hooks. [@Ichmed, #3633]
- Better duplicate key diagnostics. [@WorldSEnder, #3785]
- Fix autocompletion in html macro for rust-analyzer. [@mohe2015, #3829]
#[hook]:clippy::multiple_bound_locationslint no longer triggered. [@its-the-shrimp, #3803]
⚙️ Improvements
- Avoid unnecessary scheduling. [@WorldSEnder, #3935]
- Remove the dependency on
boolinator. [@its-the-shrimp, #3420] - Avoid string copy for Key: From implementation. [@flumm, #3858]
- Switch to tokise from tokio [@ranile, #3776]
- use_future_with: simplify code a bit by using read-only use_memo rather than use_state. [@Ekleog, #3610]
📝 Documentation
- website: modernise the Yew usage in the tutorial. [@its-the-shrimp, #3882]
- website: make tutorial testable. [@its-the-shrimp, #3879]
- fix the docs of use_prepared_state. [@its-the-shrimp, #3881]
- Update tutorial placeholder image generator. [@aznashwan, #3830]
- Refactor(NavbarItem): improve readability and maintainability. [@brilliantkid87, #3763]
- Fix website search. [@ranile, #3522]
- Addition and improvements to example crates. [@Oliver-Bilbie, #3587] [@astariul, #3631] [@ydirson, #3570] [@cecton, #3505] [@futursolo, #3436]
- Wording and typo fixes. [@waldyrious, #3754] [@Jupp56, #3429] [@fdvmoreira, #3418] [@ronanM, #3413] [@waldyrious, #3754] [@dlachaume, #3790] [@RandomInsano, #3788] [@Tushar12222, #3585] [@rockyzhengwu, #3574] [@raahimfareed, #3539] [@gcmutator, #3628] [@rmschindler, #3605] [@JonathanPicques, #3448] [@eltociear, #3432] [@moyeah, #3425]
✨ yew-router 0.19.0
⚡️ Features
- Introduce
FromQueryandIntoQuerytraits. [@Roba1993, #3565] - Dynamic basename support. [@finnbear, #3725]
🚨 Breaking changes
- MSRV raised to 1.84.0. [@Madoshakalaka, #3900]
✨ yew-agent 0.4.0
🛠 Fixes
⚡️ Features
- Support module type web worker. [@LucaCappelletti94, #3859]
🚨 Breaking changes
- MSRV raised to 1.84.0. [@Madoshakalaka, #3900]
Release notes
Open source →🚨 Breaking changes
- MSRV raised to 1.84.0. [@Siyuan Yan, #3900]
- Allow setting JsValue as properties. [@Elina, #3458]
- Remove deprecated
class=(...)syntax. [@Tim Kurdov, #3497] - Remove ToHtml trait. [@Elina, #3453]
- Make
<textarea>a void element (no children allowed anymore). [@Tim Kurdov, #3465]
⚡️ Features
- Add for-loops to
html!macro. [@Tim Kurdov, #3498] - Rename
#[function_component]to#[component]. [@Tim Kurdov, #3885] - Add
serdefeature to yew. [@Tim Kurdov, #3880] - Add
use_refhook. [@Alex Parrill, #3548] - Better ImplicitClone ergonomics. Fewer ampersands and stars needed in the
html!macro. [@Cecile Tonglet, #3508, #3431] [@Siyuan Yan, #3892] - Preserve camelCase for known SVG elements. [@Siyuan Yan, #3875]
- Add
inertto the boolean attributes list. [@Tomoaki Kawada, #3678] - Namespace support for
VRaw. [@Finn Bear, #3640] to_callbackmethods and From impls to convert reducer dispatchers and state setters to callbacks. [@Tim Kurdov, #3519]- Allows converting
ChildrenRenderer<VNode>andVChildto VList. [@Muhammad Hamza, #3444] - Add
CallbackRefthat takes ref in argument instead of value. [@Cecile Tonglet, #3419] - Allow import of layout_test into 3rd party crates. [@rollo-b2c2, #3463]
- Add WASI support for server-side rendering. [@langyo, #3534]
- Make
UseFutureHandleClone. [@Adam Steinberg, #3529] - Allow
Selfin prop fields. [@Tim Kurdov, #3569] - Allow boolean in
html!. [@Tim Kurdov, #3441]
🛠 Fixes
- Fix panic when hydrating components with unstable render order. [@WorldSEnder, #3914]
- Fix hydration panic on camelCased elements. [@Siyuan Yan, #3876]
- Fix autocompletion in html macro for rust-analyzer. [@Moritz Hedtke, #3829]
- Fix empty lists hydration failure when they were placed next to suspensions and other components. [@WorldSEnder, #3630]
- Silenced non-normalised element name warnings for SVG elements. [@Tim Kurdov, #3769]
- Fixed inconsistent clone() requirement when passing Classes to HTML elements vs. components. [@Siddhant Shekhar, #3931]
- Fix svg animation always starting immediately. [@Siyuan Yan, #3892]
- Better diagnostics for byte literals in
html!. [@Tim Kurdov, #3441] - Concise diagnostics for missing props. [@Siyuan Yan, #3873]
- Use the namespace when xmlns attributes are specified. [@JasonCG, #3629]
- Fix generic type missing errors in hooks. [@Michael Meyer, #3633]
- Better duplicate key diagnostics. [@WorldSEnder, #3785]
- Fix autocompletion in html macro for rust-analyzer. [@Moritz Hedtke, #3829]
#[hook]:clippy::multiple_bound_locationslint no longer triggered. [@Tim Kurdov, #3803]
⚙️ Improvements
- Avoid unnecessary scheduling. [@WorldSEnder, #3935]
- Remove the dependency on
boolinator. [@Tim Kurdov, #3420] - Avoid string copy for Key: From<String> implementation. [@flumm, #3858]
- Switch to tokise from tokio [@Elina, #3776]
- use_future_with: simplify code a bit by using read-only use_memo rather than use_state. [@Léo Gaspard, #3610]
📝 Documentation
- website: modernise the Yew usage in the tutorial. [@Tim Kurdov, #3882]
- website: make tutorial testable. [@Tim Kurdov, #3879]
- fix the docs of use_prepared_state. [@Tim Kurdov, #3881]
- Update tutorial placeholder image generator. [@Nashwan Azhari, #3830]
- Refactor(NavbarItem): improve readability and maintainability. [@Brilliantkid, #3763]
- Fix website search. [@Muhammad Hamza, #3522]
- Addition and improvements to example crates. [@Oliver Bilbie, #3587] [@Astariul, #3631] [@Yann Dirson, #3570] [@Cecile Tonglet, #3505] [@Kaede Hoshikawa, #3436]
- Wording and typo fixes. [@Waldir Pimenta, #3754] [@Jupp56, #3429] [@Flavio Moreira, #3418] [@ronanM, #3413] [@Waldir Pimenta, #3754] [@Damien Lachaume, #3790] [@Edwin Amsler, #3788] [@Tushar GH, #3585] [@zhengwu, #3574] [@Raahim Fareed, #3539] [@gcmutator, #3628] [@Raphael Martin Schindler, #3605] [@Jonathan Picques, #3448] [@Ikko Eltociear Ashimine, #3432] [@Daniel Sousa, #3425]
-
0.21.029 Sep 2023Release notes
Open source →What's Changed
- Update documentation to point to the right example by @campeis in #2993
- Bump @docusaurus/plugin-content-pages from 2.1.0 to 2.2.0 in /website by @dependabot in #2945
- Bump @typescript-eslint/eslint-plugin from 5.38.1 to 5.45.0 in /website by @dependabot in #2997
- Bump prettier from 2.7.1 to 2.8.0 in /website by @dependabot in #2996
- Bump minimatch from 3.0.4 to 3.1.2 in /tools/benchmark-struct by @dependabot in #2974
- Website update api doc link in hooks page to version 0.20 by @ta32 in #2994
- Bump @docusaurus/module-type-aliases from 2.1.0 to 2.2.0 in /website by @dependabot in #2995
- Bump loader-utils from 2.0.2 to 2.0.4 in /website by @dependabot in #2966
- Bump minimatch, recursive-readdir and serve-handler in /website by @dependabot in #2976
- Bump minimatch from 3.0.4 to 3.1.2 in /tools/benchmark-hooks by @dependabot in #2975
- Bump @docusaurus/core from 2.0.1 to 2.2.0 in /website by @dependabot in #2946
- Update GitHub Actions by @futursolo in #2998
- Update introduction.mdx by @tieje in #3010
- Name the correct feature in the
start_appmigration section. by @alexschrod in #3016 - Bump @types/react-helmet from 6.1.5 to 6.1.6 in /website by @dependabot in #3008
- Bump @svgr/webpack from 6.3.1 to 6.5.1 in /website by @dependabot in #3005
- Bump peterjgrainger/action-create-branch from 2.0.1 to 2.4.0 by @dependabot in #3004
- Bump actions/cache from 2 to 3 by @dependabot in #3000
- Bump hmarr/auto-approve-action from 2 to 3 by @dependabot in #3001
- Bump jetli/wasm-pack-action from 0.3.0 to 0.4.0 by @dependabot in #3002
- Bump Swatinem/rust-cache from 1 to 2 by @dependabot in #3003
- Bump @docusaurus/plugin-content-docs from 2.1.0 to 2.2.0 in /website by @dependabot in #3006
- Bump @docusaurus/plugin-google-analytics from 2.1.0 to 2.2.0 in /website by @dependabot in #3007
- Bump @typescript-eslint/parser from 5.33.0 to 5.45.0 in /website by @dependabot in #3009
- fix: dead links by @Banyc in #3013
- Point links in docs for 0.20 to stable versions by @WorldSEnder in #3019
- Fix clippy::let_unit_value lint in propless components by @WorldSEnder in #2970
- Mention certain components must be children of Router by @sasacocic in #2913
- Make Classes cheap to clone by @cecton in #3021
- Fix top-level reconciliation in portals by @WorldSEnder in #3020
- Assert there are no circular references by @WorldSEnder in #3025
- Consolidate publish workflows into one by @hamza1311 in #3026
- update migration docs to be more explicit by @spanishpear in #3028
- Update benchmark crates and workflow by @WorldSEnder in #3027
- Fix post-benchmark action by @WorldSEnder in #3032
- Add impl IntoIterator on &Classes by @cecton in #3038
- Try fixing the post-comment benchmark action by @WorldSEnder in #3045
- Try fixing the post-comment benchmark action, take 2 by @WorldSEnder in #3047
- website/docs/tutorial: fix two typos by @fschr in #2971
- Fix typo in wasm-bindgen doc page by @michaeljones in #2963
- Reentrant event listeners by @WorldSEnder in #3037
- Only handle "normal" clicks on s by @kaisalmon in #3056
- remove "Next loop" - introduction repeating by @jesper-olsen in #3040
- Add hurlurl to awesome.md by @lucasmerlin in #3051
- Update SVG colors by @siku2 in #3064
- Use SVG for logo on website by @hamza1311 in #3065
- Makes the web worker in the
web_worker_fibexample use a relative path for the web worker by @kaisalmon in #3057 - Bump @typescript-eslint/eslint-plugin from 5.45.0 to 5.47.1 in /website by @dependabot in #3069
- Bump actions/upload-artifact from 2 to 3 by @dependabot in #3074
- Bump jetli/trunk-action from 0.1.0 to 0.2.0 by @dependabot in #3073
- Bump @docusaurus/plugin-client-redirects from 2.1.0 to 2.2.0 in /website by @dependabot in #3072
- Bump prettier from 2.8.0 to 2.8.1 in /website by @dependabot in #3070
- Bump json5 from 2.2.1 to 2.2.3 in /website by @dependabot in #3079
- Bump actions/setup-node from 1 to 3 by @dependabot in #3076
- Bump JamesSingleton/is-organization-member from 1.0.0 to 1.0.1 by @dependabot in #3075
- Add method map() on Children to wrap easily by @cecton in #3039
- docs: fix markdown link by @eventualbuddha in #3081
- Prefer pop_first if it is available by @futursolo in #3084
- docs: Fix router documentation by @finga in #3078
- Implement an internal DomSlot for positioning instead of NodeRef by @WorldSEnder in #3048
- Fix typo in html! concept docs by @lukependleton in #3096
- Bump @typescript-eslint/parser from 5.45.0 to 5.50.0 in /website by @dependabot in #3103
- Bump jetli/trunk-action from 0.2.0 to 0.4.0 by @dependabot in #3106
- Bump @docusaurus/core from 2.2.0 to 2.3.0 in /website by @dependabot in #3102
- Bump prettier from 2.8.1 to 2.8.3 in /website by @dependabot in #3104
- Bump @typescript-eslint/eslint-plugin from 5.47.1 to 5.50.0 in /website by @dependabot in #3105
- Fix clippy for 1.67 by @futursolo in #3100
- Deduplicate suspensions when considering subsequent renders for suspensions by @futursolo in #3099
- Separate PR and master size collection by @futursolo in #3101
- Improve grammar in website/docs by @jsjolund in #3092
- Pass string types to Html props by @cecton in #2872
- Fix in custom-hooks.mdx by @TheBestTvarynka in #3094
- Update examples/README with correct starter templates link by @Enigo in #3098
- Implement component name completion inside
html!macro for IntelliJ Rust plugin by @vlad20012 in #2972 - Add link to the rust-yew vscode plugin to the yew docs by @ttax00 in #3116
- Bump actions/checkout from 2 to 3 by @dependabot in #3137
- Fix website workflow by @futursolo in #3110
- Fix spelling in guides by @fosskers in #3109
- Fix Dependabot and GitHub Actions by @futursolo in #3111
- Bump actions/checkout from 2 to 3 by @dependabot in #3141
- Bump @docusaurus/plugin-content-docs from 2.2.0 to 2.3.1 in /website by @dependabot in #3133
- Bump @docusaurus/plugin-client-redirects from 2.2.0 to 2.3.1 in /website by @dependabot in #3132
- Bump @typescript-eslint/parser from 5.50.0 to 5.54.0 in /website by @dependabot in #3131
- Bump @docusaurus/theme-classic from 2.1.0 to 2.3.1 in /website by @dependabot in #3134
- Bump prettier from 2.8.3 to 2.8.4 in /website by @dependabot in #3135
- Bump git2 from 0.15.0 to 0.16.1 by @dependabot in #3142
- Bump once_cell from 1.17.0 to 1.17.1 by @dependabot in #3143
- Bump base64ct from 1.5.3 to 1.6.0 by @dependabot in #3144
- Bump tokio from 1.25.0 to 1.26.0 by @dependabot in #3146
- Fix benchmark workflow by @futursolo in #3112
- Set CORS headers for tutorial/data.json by @hamza1311 in #3162
- Fix clippy for Rust 1.68 by @futursolo in #3163
- Add macige to awesome.md by @pratul in #3156
- Updated tutorial to indicate wasm32 dependencies compatibility by @Enigo in #3150
- Bump webpack from 5.75.0 to 5.76.1 in /website by @dependabot in #3164
- Bump env_logger from 0.9.3 to 0.10.0 by @dependabot in #3155
- Add MathML support + test. by @jonas-scholz123 in #3121
- Bump openssl from 0.10.45 to 0.10.48 by @dependabot in #3181
- Index of Examples Fixes and Changes by @Jaffa-Cakes in #3186
- Fix div prop name in css.mdx by @TheBestTvarynka in #3185
- Update dependencies by @hamza1311 in #3171
- Bump reqwest from 0.11.15 to 0.11.16 by @dependabot in #3188
- Bump @tsconfig/docusaurus from 1.0.6 to 1.0.7 in /website by @dependabot in #3201
- Bump @docusaurus/plugin-content-pages from 2.3.1 to 2.4.0 in /website by @dependabot in #3200
- Bump @typescript-eslint/eslint-plugin from 5.50.0 to 5.57.0 in /website by @dependabot in #3199
- Bump @docusaurus/plugin-content-docs from 2.3.1 to 2.4.0 in /website by @dependabot in #3197
- Bump @docusaurus/plugin-client-redirects from 2.3.1 to 2.4.0 in /website by @dependabot in #3196
- Fix js-benchmark action by @voidpumpkin in #3202
- Bump baptiste0928/cargo-install from 1 to 2 by @dependabot in #3198
- Bump serde from 1.0.158 to 1.0.159 by @dependabot in #3192
- Simplified and Uniform Example Instructions by @Jaffa-Cakes in #3113
- Bump lipsum from 0.8.2 to 0.9.0 by @dependabot in #3191
- Bump syn from 2.0.10 to 2.0.13 by @dependabot in #3203
- todomvc example: Disallow entering empty items by @vilcans in #3193
- Make VList's children Rc'ed by @futursolo in #3050
- Update Dependencies with Breaking Changes by @futursolo in #3204
- Remove outdated benchmarking information in CONTRIBUTING.md by @kaisalmon in #3059
- Incremental performance improvements to element creation by @gbj in #3169
- Pass hook dependencies as the first function argument by @arniu in #2861
- Bump siku2/action-hosting-deploy from 0 to 1 by @dependabot in #3136
- Communication Examples Style and Code Clean-up by @Jaffa-Cakes in #3180
- Added Spaceman to
awesome.mdby @eliaperantoni in #3207 - Approve maintainer pull requests when a pull request is ready for review by @futursolo in #3208
- Enable PartialEq for all virtual dom types by @futursolo in #3206
- Update documentation.md by
Note truncated.
Release notes
Open source →Users can follow the migration guide to migrate from 0.20.0 to 0.21.0.
🛠 Fixes
- Fix rust-analyzer non_camel_case_types warning. [[@Sean Bruton](https://github.com/Sean Bruton), #3388]
- Fix incorrect text escaping during SSR. [[@Tim Kurdov](https://github.com/Tim Kurdov), #3381]
- Fix top-level reconciliation in portals. [@WorldSEnder, #3020]
- Fix clippy::let_unit_value lint in propless components. [@WorldSEnder, #2970]
⚡️ Features
- Updated the docs of
set_event_bubbling. [[@Tim Kurdov](https://github.com/Tim Kurdov), #3391] - feat: support arrays for Classes/classes!(). [@Pouriya, #3393]
- Mark VNode as #[must_use]. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3387]
- Add
IntoPropValueimplementation to convert fromCows toAttrValue. [[@Tim Kurdov](https://github.com/Tim Kurdov), #3346] - Remove compatibility code before 1.64. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3379]
- Keep checked attribute for elements without special handling. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3373]
- feat: implement hydration for vraw. [[@Dillen Meijboom](https://github.com/Dillen Meijboom), #3245]
- Add webkitdirectory to the boolean attributes list. [[@Julius Lungys](https://github.com/Julius Lungys), #3214]
- Incremental performance improvements to element creation. [[@Greg Johnston](https://github.com/Greg Johnston), #3169]
- Make VList's children Rc'ed. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3050]
- Update dependencies. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3171]
- Pass string types to Html props. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #2872]
- Implement an internal DomSlot for positioning instead of NodeRef. [@WorldSEnder, #3048]
- Prefer pop_first if it is available. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3084]
- Add method map() on Children to wrap easily. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #3039]
- Reentrant event listeners. [@WorldSEnder, #3037]
- Add impl IntoIterator on &Classes. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #3038]
- Assert there are no circular references. [@WorldSEnder, #3025]
🚨 Breaking changes
- Remove special handling of struct fields of type
Optioninderive(Properties). [[@Tim Kurdov](https://github.com/Tim Kurdov), #3398] - Agent v2. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2773]
- Update signature of use_prepared_state/use_transitive_state. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3376]
- Make signature of use_future_with consistent. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3372]
- Allow any type to be used as Children (take 2). [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3289]
- Enable PartialEq for all virtual dom types. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #3206]
- Pass hook dependencies as the first function argument. [[@Arniu Tseng](https://github.com/Arniu Tseng), #2861]
- Make Classes cheap to clone. [[@Cecile Tonglet](https://github.com/Cecile Tonglet), #3021]
-
0.20.025 Nov 2022Release notes
Open source →Yew pinned to 0.23 now.
🛠 Fixes
- '/' is no longer wrongly encoded in wildcard route segments. [@Madoshakalaka, #4056]
- Fixed a url corruption issue causing redirection to
/basename//basenameresulting in a 404. [@Madoshakalaka, #4030]
Release notes
Open source →Yew pinned to 0.23 now.
🛠 Fixes
- '/' is no longer wrongly encoded in wildcard route segments. [@Siyuan Yan, #4056]
- Fixed a url corruption issue causing redirection to
/basename//basenameresulting in a 404. [@Siyuan Yan, #4030]
-
0.19.311 Dec 2021Nothing published for this version
-
0.19.211 Dec 2021 withdrawnNothing published for this version
-
0.19.107 Dec 2021 withdrawnNothing published for this version
-
0.19.006 Dec 2021 withdrawnRelease notes
Open source →⚡️ Features
- Introduce
FromQueryandIntoQuerytraits. [@Robert Schütte, #3565] - Dynamic basename support. [@Finn Bear, #3725]
🚨 Breaking changes
- MSRV raised to 1.84.0. [@Siyuan Yan, #3900]
- Introduce
-
0.18.015 May 2021Release notes
Open source →⚡️ Features
- Update dependencies. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #3171]
- Only handle "normal" clicks on <Link>s. [[@Kai Salmon](https://github.com/Kai Salmon), #3056]
🚨 Breaking changes
-
0.17.029 Jun 2020Release notes
Open source →-
🛠 Fixes
- Fix basename handling in router. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #2297]
-
⚡️ Features
- Simple
NodeRefpassing to<Link>for yew-router. [[@Athan Clark](https://github.com/Athan Clark), #2877] - Make Switch to accept a closure as render function directly. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2659]
#[cfg(feature = "render")]andyew::Renderer. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2498]- Includes query parameters in rendered Link component. [[@Yuki Kodama](https://github.com/Yuki Kodama), #2464]
- Update to edition 2021. [[@Muhammad Hamza](https://github.com/Muhammad Hamza), #2354]
- Support named wildcards when deriving Routable.. [[@Jonathan Bailey](https://github.com/Jonathan Bailey), #2345]
- Add HashRouter, basename and use gloo-history. [[@Kaede Hoshikawa](https://github.com/Kaede Hoshikawa), #2239]
- Simple
-
-
0.16.114 May 2020 -
0.16.009 May 2020Release notes
Open source →-
🛠 Fixes
- Fix Some Router Behaviour. [@futursolo, #2107]
- Fix multiple field enum tokens. [@mc1098, #1988]
- Fix clippy lints from 1.54.0. [@Xavientois, #1976]
- Fix router. [@hamza1311, #1856]
- update nom 6.1.2 and fix compile errors.. [@higumachan, #1806]
-
⚡️ Features
- Add missing router docs: Redirect, Nested Router, and Path Segament capturing. [@Madoshakalaka, #2192]
- use base url for href of links. [@WorldSEnder, #2177]
- Use functions from
gloo_utilsinstead of re-implementing them. [@hamza1311, #2124] - Update Yew Router as per #2113. [@futursolo, #2118]
- Update dependencies. [@mc1098, #2064]
- Add "replace route" call as a companion to "push route". [@rjmac, #2023]
- Add shorthand syntax for props. [@Xavientois, #1970]
- Add requirement for braces around most props. [@Xavientois, #1939]
- Clean-up and optimize router a little bit. [@hamza1311, #1869]
- Apply Clippy lints.. [@teymour-aldridge, #1863]
- Rewrite router. [@hamza1311, #1791]
- Added missing licenses to Cargo.toml files and updated to use SPDX syntax. [@jbg, #1822]
- Update Rust version for macro tests to 1.51 & enable const generics tests. [@hamza1311, #1801]
- Add support for the unit struct in Properties derive. [@Xavientois, #1752]
-
-
0.15.025 Apr 2020Release notes
Open source →-
⚡️ Features
- None
-
🛠 Fixes
- None
-
🚨 Breaking changes
RouterButtonnow prevents default events per default @TheNeikos
-
-
0.14.104 Apr 2020Release notes
Open source →-
🛠 Fixes
Connectedmessage was only called for first bridge creation. [[@nicklaswj], #1029]
-
-
0.14.014 Mar 2020Release notes
Open source →-
⚡️ Features
- None
-
🛠 Fixes
- None
-
🚨 Breaking changes
- The
unit_statemodule has been removed. - Bump
yewversion to0.17.
- The
-
-
0.13.001 Mar 2020 -
0.12.016 Feb 2020Release notes
Open source →-
🚨 Breaking changes
- Bump
yewversion to0.15.
- Bump
-
Extraneous
- Remove
guideexample.
- Remove
-
-
0.11.006 Jan 2020 -
0.10.011 Nov 2019Release notes
Open source →- Bumped version of Yew from v0.12.0 to v0.13.0
- This brings support for web_sys, which necessitates specifying either "web_sys" or "std_web" as a feature. (Thanks @tarkah)
-
0.9.213 Oct 2019 -
0.9.113 Oct 2019Release notes
Open source →Happy Canadian Thanksgiving! 🦃
-
⚡️ Features
- Implemented
Defaulttrait forVNodeso thatunwrap_or_defaultcan be called onOption<Html<Self>>. [[@hgzimmerman], #672] - Implemented
PartialEqtrait forClassesso that is more ergonomic to useClassestype in component props. [[@hgzimmerman], #680] - Updated
wasm-bindgendependency to0.2.50. Please update yourwasm-bindgen-clitool by runningcargo install --force --version 0.2.50 -- wasm-bindgen-cli. [[@jstarry], #695]
- Implemented
-
🛠 Fixes
- Fixed issue where text nodes were sometimes rendered out of order. [[@jstarry], #697]
- Fixed regression introduced in 0.9.0 that prevented tag attributes from updating properly. [[@jstarry], #698]
- Fixed emscripten builds by pinning the version for the
ryudownstream dependency. [[@jstarry], #703] - Updated
stdwebto0.4.20which fixed emscripten builds and unblocked updatingwasm-bindgento0.2.50. [[@ctaggart], [@jstarry], #683, #694] - Cleaned up build warnings for missing
dynkeywords. [[@benreyn], #687]
-
-
0.9.027 Sep 2019 -
0.8.010 Aug 2019Release notes
Open source →-
⚡️ Features
- Use a default type parameter of
()to specify state-related type parameters instead of the old macro-based solution. [157] - Remove need for
JsSerializablebound on the state parameter used for storing extra data in the history API.[185] - RouterLink and RouterButton now support having children Html. This deprecates the
textprop. [192] - Fragment routing is now easily implementable by using an adapter because parser rules for the routing syntax were relaxed. [195] [211]
- Support using this library only with the Switch derive, allowing it to run in non-web contexts. [199]
- Use a default type parameter of
-
🚨 Breaking changes
- If you were using
default-features = false, you will have to now specifyfeatures = ["service"]to get the same behavior as before. [199] RouterAnchorandRouterButtonnow have props that take aroute: SW where SW: Switchprop instead of alink: Stringand they now have a mandatory type parameter that specifies thisSW. [207]Route's state field now holds aTinstead of anOption<T>. [205]- Using default type parameters to specify the state typ instead of the macro that generated a module (
unit_state) means that any imports from that module should now be replaced with the path that the type normally has in the project. [157]
- If you were using
-
Inconsequential
- Change state related type parameters from
TtoSTATE. [208]
- Change state related type parameters from
-
-
0.7.019 Jul 2019Release notes
Open source →-
⚡️ Features
-
🛠 Fixes
-
🚨 Breaking changes
- Upgrade to Yew 0.10.0
- Switch components now need to implement
Clonein order to be used with theRouter[171]
-