tl;dr: Preact X is the next major version of Preact fully packed with features like Fragments, Hooks, componentDidCatch, Test-Utils, Debug-Warnings, many compatibility fixes and so much more
It's finally happening! After months of hard work we've crossed the finish line and are over the moon with excitement to finally mark Preact X as stable. We'd like to thank everybody who tested it and submitted bug reports.
We originally planned to release a sort-of migration release as version 9 with just the breaking changes from X, but that got canned because many users reported that the upgrade process was easy enough and didn't warrant a long migration period in-between. In fact we got many reports that the upgrade could be done in under an hour, despite some of the breaking changes in X, making the need for a migration release even less desirable.
Preact X ships with several major features and we combined them all in a single document on our site. If you're upgrading an existing Preact
8.x project, we got you covered with a detailed upgrade guide.
To give a quick summary of the new features:
compatmoved to core
- Plethora of compatibility fixes
- Many new warnings in
- Same 3 kB size as Preact 8
Again, we highly recommend checking out our new site and specifically the what's new section.
Changes since RC 4
shouldComponentUpdatehandling to take more edge cases into account (#1931, thanks @JoviDeCroock)
UNSAFE_*lifecycles being overwritten in
compat(#1946, thanks @marvinhagemeister)
__sourcechanges (#1950, thanks @JoviDeCroock)
- Fix default argument in
useStatenot applied in rare cases (#1948, thanks @JoviDeCroock)
.forceUpdate()to participate in the update queue (#1939, thanks @developit)
vnode._childrenshould keep their type as
arraywhen diffing (#1924, thanks @cristianbote)
- Allow numeric CSS values to be 0 (e.g.
opacity) (#1927, thanks @JoviDeCroock)
- Fix unnecessary rerender on equal contexts (#1925, thanks @JoviDeCroock)
disableRemotePlaybackto HTML Attributes (#1955, thanks @JoviDeCroock)
volumeto HTML Attributes (#1938, thanks @jessicabyrne)