Skip to content

Releases: preactjs/preact

10.11.0

12 Sep 08:36
77b79c0
Compare
Choose a tag to compare

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

Maintenance

10.10.6

19 Aug 17:17
9457b22
Compare
Choose a tag to compare

types

10.10.5

19 Aug 08:56
2b1930c
Compare
Choose a tag to compare

fixes

10.10.4

18 Aug 21:06
b7072ad
Compare
Choose a tag to compare

Fixes

10.10.3

16 Aug 08:42
a4c3e7b
Compare
Choose a tag to compare

Fixes

10.10.2

10 Aug 08:54
6b92b1f
Compare
Choose a tag to compare

Fixes

10.10.1

05 Aug 12:05
191d5cb
Compare
Choose a tag to compare

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

10.10.0

13 Jul 10:28
dbe0fa8
Compare
Choose a tag to compare

Feature


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

06 Jul 08:33
80600ea
Compare
Choose a tag to compare

Feature

We are adding support for the newly added React 18 hooks (apart from useId) (#3568, thanks @JoviDeCroock)

FIxes

10.8.2

22 Jun 13:52
a0f7742
Compare
Choose a tag to compare

Enhancements

Fixes

Improvements