Releases: preactjs/preact
Releases · preactjs/preact
10.10.6
types
- allow for null return from fc (#3683, thanks @JoviDeCroock)
10.10.5
fixes
- undo jsx-element removal (#3680, thanks @JoviDeCroock)
10.10.4
Fixes
- allow function component with children (#3676, thanks @JoviDeCroock)
- ensure we iterate over all hooks (#3675, thanks @JoviDeCroock)
10.10.3
Fixes
- fix hooks calling shouldComponentUpdate without context (#3671, thanks @developit)
- fix case where we set SCU multiple times (#3670, thanks @JoviDeCroock)
- fix sync-external-store with zustand (#3663, thanks @JoviDeCroock)
10.10.2
Fixes
- fix
useSyncExternalStore
relying on changed render values (#3655, thanks @JoviDeCroock) - avoid crashing due to __hooks being null (#3651, thanks @JoviDeCroock)
10.10.1
Bug Fixes
- Fix infinite loop in
radix-ui
which enqueues multiple state updates in the same tick (#3645, thanks @JoviDeCroock ) - Fix effects run for suspended components in rare instances (#3643, thanks @JoviDeCroock )
- Fix
useSyncExternalStore
not working with function values (#3633, thanks @marvinhagemeister ) - Defer bailing out of updates to the render phase to align with React (#3621 + #3623, thanks @JoviDeCroock )
- Fix some SVG attributes applied with wrong casing (#3615, thanks @iminside)
Maintenance
- Update
esbuild
(#3630, thanks @marvinhagemeister ) - Make demo compatible with node 16 and 18 (#3617, @gengjiawen )
10.10.0
Feature
- Microtick —> setTimeout for debouncing renders (mirror change for setTimeout debounce #3608, thanks @JoviDeCroock)
We changed our debounce of our rendering to setTimeout!
Why? We've batched using microtasks for the past few major versions because it benchmarked well. This had a side-effect of flushing batched renders between event handlers, which can cause some strange behavior:
<input
type="checkbox"
onChange={onChange}
checked={true}
onClick={onClick}
/>
An additional benefit of this change is that code causing an infinite rendering loop will no longer result in an unresponsive browser tab. Rendering in a loop is now capped to the browser's maximum timer frequency (~250Hz), which makes it possible to pause and debug the code triggering an accidental loop.
10.9.0
Feature
We are adding support for the newly added React 18 hooks (apart from useId
) (#3568, thanks @JoviDeCroock)
FIxes
- Adding types for 'part' attribute (#3595, thanks @rschristian)
- prevent _suspended and _force from colliding (#3585, thanks @JoviDeCroock)
10.8.2
Enhancements
- Add support for svg property shape-rendering (#3577, thanks @DannyvanderJagt)
- Remove setState on unmounted component warning (#3576, thanks @ekwoka)
Fixes
- Fix allow return
undefined
inuseMemo
after skipped render (#3580, thanks @marvinhagemeister) - Fix incorrect
useMemo
return value after skipped render (#3579, thanks @marvinhagemeister) - Commit hooks in options.diffed (#3578, thanks @JoviDeCroock)
- restrict "oninputCapture" conversion to just "oninput" vs "oninput*" (#3573, thanks @jramanat-oracle)
Improvements
- Improve unit tests to cover fix on #3573 (#3574, thanks @marconi1992)
- Add
_pendingValue
tomangle.json
(#3575, thanks @marvinhagemeister)
10.8.1
- Clear pending state from repeated renders (#3567, thanks @JoviDeCroock)