Preact 3
https://github.com/preactjs/preact
- Performance tuning for a ~10% improvement on DBMonster (basically 10% faster diff algorithm)
- Refactored diff algorithm to be easier to follow
- Add
Component.prototype.forceUpdate()
method. - Fix a bug where a child component of a high-order component self-rendering (eg: via
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). - Fix an issue where nested components would not receive unmount lifecycle hooks (fixes Issue #47)
- Bugfix: pass
context
through recycled constructors (with thisreact-redux
is now fully supported!) linkState()
when used with top-level keys (ie, not dot-notated) will no longer mutatethis.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)
This is likely the last beta release of Preact 3.0, it'll become the stable branch shortly.
Feedback and testing welcome!
- Use a safeguard method to obtain preact attr cache objects before writes
- Fix edge case where fallthrough attribute values would not be stored in the preact attr cache
null
instead ofdelete
for_component
refs, avoiding shape mutations- build tweaks
- Preact's codebase has been factored into modules
- Reduced possible repaints by collecting property cache into a namespace
- 10-20% performance improvement under heavy rendering load!
- Now available in npm under a nice
dist-tag
:npm install preact@beta
- Fixes for event removal (#34), tests.
Beta version of the 3.0.0 major bump:
3.0.0
- Added
context
support - Bugfix:
componentDidUpdate()
should not be called after initial render - Switch from tracking
nextState
to trackingprevState
- Drop
VNode#__isVNode
in favor ofinstanceof
(reason)