Skip to content

Releases: preactjs/preact

4.6.3

18 Apr 13:17
Compare
Choose a tag to compare
  • Don't attempt to append a child to a parentNode if the child is the parentNode. Fixes Issue #126.

4.6.2

13 Apr 14:01
Compare
Choose a tag to compare
  • Optimize serialization of Objects to CSS strings to be about 5x faster (benchmark: https://esbench.com/bench/570daee0db965b9a009659f7)

  • Rethink solution to #120. TL;DR: fresh instances, cached DOM. Long version:

    Re-invoking the constructor on a class was not a great idea. Babel's transpiled constructors
    (and basically anything else) re-assign to the prototype, which is slow and a fairly bad idea.
    Also, and more importantly, it was assigning this.base to null, completely ignoring the
    main reason for caching components (caching their generated DOM using the component itself
    as a cache key). This commit changes the behavior to discard the cached component instance
    itself, re-using only the base by copying it to a fresh instance. Best of both worlds!

4.6.1

12 Apr 13:09
Compare
Choose a tag to compare
  • Fix for #122: don't assume Function.prototype exists, as it does not for Arrow Functions (thanks @LinusU!)

4.6.0

12 Apr 02:57
Compare
Choose a tag to compare
  • Fix regression since 4.5.0 where key tracking for components would fail in some cases, causing components not to be recycled. Relates to #98 and the second issue noted in #120.
  • Switch to a global/named symbol Symbol.for('preactattr') for the prop cache key (still falling back to __preactattr_).
  • Address the state re-use issue noted in Issue #120 by manually re-invoking component constructors when re-using components from the recycler.

4.5.1

07 Apr 15:25
Compare
Choose a tag to compare
  • Updated ESLint, announced preactjs.com website.

4.5.0

19 Mar 16:42
Compare
Choose a tag to compare

Bug Fixes

  • Fix context being null/undefined when unset. It should be an empty object.
  • Fix issue where ref (and key) were not being removed from props prior to being passed into component render (Issue #98)

Optimizations

  • Drop unnecessary cloning of props/context
  • Ship a more optimized default build by applying uglify-js without name mangling and with beautification (removes comments and applies dead code elimination)

4.4.0

18 Mar 02:31
Compare
Choose a tag to compare

Bug Fixes

  • When reclaiming externally created elements (such as via dangerouslySetInnerHTML), copy their attributes into the prop cache so they are properly diffed on subsequent render (Issue #97)
  • Fix cached unmount behavior: lifecycle events should be invoked for nested components, but only the top-level component should be physically removed from the DOM. The rest remain cached within that component's DOM + VDOM tree (Issue #94)

4.3.2

14 Mar 01:04
Compare
Choose a tag to compare
  • Fix exception thrown when removing/unsetting dangerouslySetInnerHTML

4.3.1

13 Mar 17:04
Compare
Choose a tag to compare
  • Fixed issue where setting the value prop for a <select> element could have no effect on initial render

4.3.0

12 Mar 20:27
Compare
Choose a tag to compare
  • Fix an issue where invoking refs may be skipped during unmount (ex: re-render swaps high-order components)
  • Fix a few cases where refs were invoked with the wrong value (Issue #87, thanks @chrisdavies)