v0.2.3
fixed support for stable Rust, which I temporarily broke in v0.2.2
.
The main change in v0.2.4
is a rewritten reactive system. This didn't involve any breaking API changes, except to the extent that fixing bugs and glitchy behavior breaks apps that depend on the glitches. It pretty significantly improves the performance of the reactive system on deep graphs (i.e., when you have a chain of dependencies like memos leading from a signal to an effect), as well as fixing reactive "glitching" behaviors in ways that make effects run more efficiently. You can read more about the details here.
Other changes:
- improved error handling in
<ActionForm/>
- Support for using signals directly in the view in stable Rust
- cancelable versions of
set_timeout
,request_idle_callback
, andrequest_animation_frame
(all ending withwith_handle
) - a
debounce
helper that makes it easy to debounce event listeners - allow manual disposal of signals before the current reactive cope is disposed with the
SignalDispose
trait (and.dispose()
) function, to avoid leaking memory if you create a list of signals at the root scope - allow batching multiple updates with
Scope::batch()
before running effects - many small bugfixes
What's Changed
- fix broken stable support by @gbj in #670
- feat:
<ActionForm/>
improvements by @gbj in #676 - chore: apply
cargo machete
systematically by @gbj in #671 - feat: new reactive system implementation by @gbj in #637
- Fixed building in release (
cfg(not(debug_assertions))
) by @Buzzec in #679 - feat: maintain order of sources and dependencies by @gbj in #678
- CI: add
--release
checks by @gbj in #681 - fix: leaking stored values by @gbj in #683
- fix: suppress spurious hydration warnings for tags in
leptos_meta
by @gbj in #684 - Added
IntoView
forReadSignal
andRwSignal
in thestable
feature. by @Buzzec in #677 - docs: typos by @ryndin32 in #685
- fix: allow multiple
<Suspense/>
on same page during in-order or async rendering by @gbj in #687 - Added example using Tailwind, CSR (only) and Trunk by @vascokk in #666
- fix: hydration errors with
<Suspense/>
inside components in SSR mode by @gbj in #688 - feat: support diffing inside component children in hot-reload by @gbj in #690
- examples: remove duplicate
console_error_panic_hook::set_once()
calls by @elliotwaite in #692 - docs: beginning work on router docs by @gbj in #682
- fix issues in release mode (closes #700) by @gbj in #701
- fix: ignore view markers in DynChild hydration (closes issue #697) by @gbj in #703
- feat: add cancellable versions of
request_animation_frame
andrequest_idle_callback
by @elliotwaite in #698 - feat: add a
debounce
helper for event listeners by @gbj in #691 view!
macro not compiling with a non-default scope name by @alexisfontaine in #704- Clippy: less .clone() calls, simpler pointer passing. by @martinfrances107 in #707
- feat: add
set_interval_with_handle
and deprecateset_interval
by @gbj in #709 - feat: allow manual signal disposal before the scope is disposed by @gbj in #710
- feat: add
Scope::batch()
by @gbj in #711 - chores: clearing up some warnings and adding missing exports by @gbj in #712
- Used modulo rather than bitwise & for is_odd check. by @carltongibson in #713
- docs: small fixes by @gbj in #715
- fix:
<Transition/>
behavior by @gbj in #717 - Minor: Simplifiy Box::Pin() call. by @martinfrances107 in #718
New Contributors
- @Buzzec made their first contribution in #679
- @ryndin32 made their first contribution in #685
- @vascokk made their first contribution in #666
- @alexisfontaine made their first contribution in #704
- @carltongibson made their first contribution in #713
Full Changelog: v0.2.2...v0.2.4