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
contextthrough recycled constructors (with thisreact-reduxis now fully supported!) linkState()when used with top-level keys (ie, not dot-notated) will no longer mutatethis.statein-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
nullinstead ofdeletefor_componentrefs, 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
contextsupport - Bugfix:
componentDidUpdate()should not be called after initial render - Switch from tracking
nextStateto trackingprevState - Drop
VNode#__isVNodein favor ofinstanceof(reason)