Releases: preactjs/preact
Releases · preactjs/preact
10.14.0
Features
- Add default props in cloneElement (#3968, thanks @nnhk23)
- Throw an error in debug if NaN is in a hook's dependency array (#3964, thanks @andrewiggins)
- Add deeper controlled input support in compat (#3926, thanks @andrewiggins)
Fixes
- Fix rowspan and colspan not cleared (#3997, thanks @marvinhagemeister)
- Should not transform imageSourceSet to image-source-set (#3995, thanks @JoviDeCroock)
Types
- Add some JSX attribute types (#3970, thanks @kidonng)
indeterminate
's SignalLike type (#3971, thanks @rschristian)
Maintenance
- Add missing type fields for tools (#3990, thanks @marvinhagemeister)
- Add isNaN helper for IE11 (#3981, thanks @andrewiggins)
- Fix firefox saucelabs not running (#3963, thanks @JoviDeCroock)
- Wait a major task after triggering GC to measure memory (#3962, thanks @andrewiggins)
- Add test for unmounting callback ref passed to
useImperativeHandle
(#3960, thanks @andrewiggins) - Improve perf of prop access (#3956, thanks @JoviDeCroock)
10.13.2
Performance
- Optimization for aria-/data- attr detection (#3948, thanks @developit)
- Optimize compat by hoisting the vnode handling func (#3941, thanks @JoviDeCroock)
Maintenance
- Upgrade prettier and run on more files (#3945, thanks @andrewiggins)
10.13.1
Bug Fixes
- Skip over function children when rendering (#3919, thanks @andrewiggins)
- Fix hook update not being applied when a forced context update was enqueued at the same time (#3922, thanks @marvinhagemeister)
Performance
- Improve render queue sorting performance by hoisting out function (#3921, thanks @developit)
- Improve compat performance by hoisting out regexes (#3903, thanks @JoviDeCroock)
Maintenance
- Some more IE11 specific fixes in our test suite (#3914, thanks @marvinhagemeister)
10.13.0
Features
- Switch back to microticks for scheduling as the default (#3911, thanks @marvinhagemeister , @JoviDeCroock)
Bug Fixes
- Fix hydrating
<textarea>
with value prop (#3891, thanks @andrewiggins) - Prevent memory leak when creating and destroying root nodes by clearing
currentComponent
(#3908, thanks @JoviDeCroock) - Fix regression in
10.12.1
from #3889 which could lead to a state not updating after a context update was enqueued (#3906, thanks @JoviDeCroock) - Fix tests assertions for IE11 (#3912, thanks @marvinhagemeister)
Types
- Add
indeterminate
property (#3837, thanks @rschristian) - Add aria role attribute values (#3904, thanks @shoonia)
- Add missing SVG Elements to types (#3905, thanks @shoonia)
- Add Missing
MemoExoticComponent
type inpreact/compat
(#3898, thanks @rschristian) - Add ARIA attribute types (#3910, thanks @andrewiggins)
10.12.1
Bug Fixes
- Fix non-numeric numbers passed to
width
orheight
attribute not working correctly (#3888, thanks @JoviDeCroock) - Fix
createContext
update being blocked byshouldComponentUpdate
(#3889, thanks @marvinhagemeister)
10.12.0
Features
- Use microtick outside of events (#3879, thanks @JoviDeCroock)
- Re-sort rerender queue if modified while we are processing rerenders (#3871, thanks @andrewiggins)
- Preserve event handler return values (#3812, thanks @developit)
Bug Fixes
- Fix: avoid bailing in strict equality (#3884, thanks @JoviDeCroock)
- When unmounting, continue with the last DOM element's nextSibling (#3878, thanks @andrewiggins)
- Fix parameters or JSX dev runtime (#3880, thanks @wooorm)
- Improve Fragment unmounting while correctly swapping nested fragments (#3875, thanks @andrewiggins)
- Clear css properties when passed undefined (#3862, thanks @andrewiggins)
- Debug: limit "object as children" error to elements (#3801, thanks @developit)
- Invoke setState callbacks setup in componentWillMount (#3806, thanks @andrewiggins)
Typings
- add exactOptionalPropertyTypes support to html attributes (#3868, thanks @deadem)
- Changes
EventHandler<...>
to have athis
of typevoid
. (#3867, thanks @MicahZoltu) - Narrows type of
parent
in render functions. (#3863, thanks @MicahZoltu)
Maintenance
- Improve suspense test spies (#3856, thanks @andrewiggins)
- docs: Fix a few typos (#3844, thanks @timgates42)
- docs: Removes recommendation for
preact-cli
(#3816, thanks @rschristian)
10.11.3
Bug Fixes
- Add an explicit
default
export for compatibility with esbuild (#3783, thanks @Verseth) - Fix
useId
uniqueness with shared parents + DOM nodes in between (#3773, thanks @marvinhagemeister) - Fix case where keyed children would get removed (#3779, thanks @JoviDeCroock)
- Use
Object.is
in useSyncExternalStore (#3776, thanks @zalishchuk)
Maintenance
- Consolidate benchmark workflow steps into a single reusable workflow (#3782, thanks @andrewiggins)
- Upgrade bench dependencies (#3778, thanks @andrewiggins)
- Upgrade workflow actions (#3777, thanks @andrewiggins)
10.11.2
Bug Fixes
- Fix
setState
order (#3763, thanks @JoviDeCroock) - Fix duplicate ids with
useId
when Fragments are involved (#3758, thanks @marvinhagemeister)
Types
- Fix props not spreadable to
<input>
elements (#3764, thanks @mwszekely)
10.11.1
Bug Fixes
- Fix webpack error when trying to import
compat/package.json
(#3755, thanks @akselander) - Fix nested fragments swapped incorrectly on conditional swap (#3738, thanks @JoviDeCroock)
- Avoid synchronously adding setState callbacks (#3743, thanks @JoviDeCroock)
- Fix signals not supported in HTML + SVG TypeScript definitions (#3747, thanks @marvinhagemeister)
- Only remove nested DOM elements on unmount when necessary (#3741, thanks @developit)
- Don't discard prop updates when nested state update is immediately cancelled (#3739, thanks @JoviDeCroock)
- Align TypeScript definitions from react to refs and forward refs (#3713, thanks @PodaruDragos)
- Add missing
"types"
field forpreact/debug
(#3732, thanks @marvinhagemeister) - Fix falsy data attributes not working (#3720, thanks @JoviDeCroock)
- Ensure
_mask
property always has the same name in distributed version (#3721, thanks @JoviDeCroock)
10.11.0
10.11.0
New Hook: useId
Today we are announcing a new hook: useId
. This hook creates stable unique identifiers that are consistent between server-side rendering (using preact-render-to-string) and client-side hydration. The useId()
hook is primarily useful for generating identifiers for attributes like aria-labelledby
and <label for="...">
.
To enable useId()
to generate consistent unique identifiers, please ensure you are using preact-render-to-string version 5.2.4 or newer for server-side rendering.
(#3583, thanks @JoviDeCroock)
Fixes
- Fix memory leak by cleaning up
_parent
,_dom
and__hooks
after unmount (#3709, thanks @JoviDeCroock) - Fix case where the
ref
property could be omitted from reused VNodes (#3696, thanks @JoviDeCroock) - Pass
errorInfo
touseErrorBoundary
callback (#3689, thanks @marvinhagemeister) - Fix typescript definition for
class | className
(#3711, thanks @PodaruDragos)
Maintenance
- Fix the mac arm build (#3697, thanks @gengjiawen)
- Fix published JS formats after #3697 (#3702, thanks @rschristian)
- Add todo benchmark and add a proxy package that uses preact/hooks (#3708, thanks @JoviDeCroock)
- Add deprecation notice to
render()
'sreplaceNode
argument (#3700, thanks @rschristian) - Improve types for bare
createElement()
andh()
calls (#3690, thanks @JoviDeCroock) - Add test for useId (#3716, thanks @JoviDeCroock)