NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1799 most downloaded on npm
Fast 3kb React-compatible Virtual DOM library.
Last release 13 days ago
08 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
286 releases · first in 2015
Fix an issue where invoking refs may be skipped during unmount (ex: re-render swaps high-order components)
Preact now explicitly removes falsey (false, null and undefined) properties and attributes from the DOM. This behaviour is consistent with React's. Se
Preact now explicitly removes falsey (false, null and undefined) properties and attributes from the DOM. This behaviour is consistent with React's. See #83 and #58.
One column per quarter.
Omit explicitly false JSX children to match the behavior of React (Issue #83).
false JSX children to match the behavior of React (Issue #83).This is purely a bug fix release, so be sure to update if you're using Preact 4.x.
This is purely a bug fix release, so be sure to update if you're using Preact 4.x.
Preact 4 is now officially out of beta. Please still report any bugs you find!
Fix multiple camelCase'd CSS properties
null when the associated component is unmountedCancel preliminary support for String refs. Preact core will only be supporting function refs, since String refs are "mostly" deprecated.
refs. Preact core will only be supporting function refs, since String refs are "mostly" deprecated.Possibly Breaking Change: cache rendered DOM with components when recycling
refs!defaultProps (static property on Components)setImmediate() to improve setState() performance where availablestyle objectsclassName and style values to an empty string to avoid class="null" and style="null"<x-undefined-element> to <undefined>Symbol for storing the prop cache where availableFix for key behaviour, and don't write keys to the DOM as attributes.
key behaviour, and don't write keys to the DOM as attributes.Performance tuning for a ~10% improvement on DBMonster (basically 10% faster diff algorithm)
Component.prototype.forceUpdate() method.setState()) would cause a subsequent re-render of the parent component to re-initialize itself and the child (through the recycler, but this was causing thrash).Bugfix: pass context through recycled constructors (with this react-redux is now fully supported!)
context through recycled constructors (with this react-redux is now fully supported!)linkState() when used with top-level keys (ie, not dot-notated) will no longer mutate this.state in-place.
(Nested keys can and will still mutate this.state, since the implementation of immutable state traversal would essentially be a small immutability library, not something Preact core can justify)
Nothing published for this version
Nothing published for this version
This is likely the last beta release of Preact 3.0, it'll become the stable branch shortly. Feedback and testing welcome!
This is likely the last beta release of Preact 3.0, it'll become the stable branch shortly. Feedback and testing welcome!
null instead of delete for _component refs, avoiding shape mutationsNothing published for this version
Preact's codebase has been factored into modules
dist-tag: npm install preact@betaFixes for event removal (#34), tests.
Beta version of the 3.0.0 major bump:
Beta version of the 3.0.0 major bump:
context supportcomponentDidUpdate() should not be called after initial rendernextState to tracking prevStateVNode#__isVNode in favor of instanceof (reason)Nothing published for this version
Nothing published for this version
Nothing published for this version
Performance improvements for asymmetric DOM properties
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fixes #5: props are now passed to Component constructors.
props are now passed to Component constructors.Fix: ensure the npm package includes src/ since it's now used by anyone using rollup for bundling (via jsnext:main).
src/ since it's now used by anyone using rollup for bundling (via jsnext:main).Switch to a rollup-powered build, courtesty of @sheepsteak (thanks!)
Fix incorrect behavior where attributes with explicit false values were being skipped.
false values were being skipped.Fix componentWillMount / componentWillUnmount for high-order components
Fix detachment of content attributes by preferring their property equivalents where available
Re-add component.setProps() since other libs depend on it
Re-add component.setProps() since other libs depend on it
Preact 2.0.0 adds support for High-Order Components (yay!)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →