Skip to content

Version 0.17.3

Pre-release
Pre-release

Choose a tag to compare

@estherbrunner estherbrunner released this 08 Jan 15:12
· 245 commits to main since this release
f0263c0

What's Changed

Breaking Changes

  • New way to instantiate signals:
    • createState() -> new State()
    • createComputed() -> new Memo() (sync) or new Task() (createComputed() still exists as a wrapper)
  • Removed StoreChanges notification listener system in favor of a unified reactivity model. Access to reactive .keys() iterator on Store, List, or Collection in an effect to be notified about structural changes only, or the usual .get() to be notified about resolved value changes instead.

New Features

  • new Collection signal type for read-only derived reactive lists
  • new Ref signal type for externally managed objects like DOM elements, WebSocket connections, or files on the server.

Improvements

  • Massive performance gain for Store instantiation (more than double) and List instantiation (5x faster)
  • Improved performance of method access in List (about 3x faster)
  • Reduced memory usage for Store (less than half) and List (about 4x less) due to method sharing of classes

These huge gains convinced us to switch to a class-based architecture for signals, which made the breaking change for instantiation neccessary. We opted for not providing wrapper functions to support the deprecated API signature, since we're still in a pre-release phase.

Full Changelog: v0.16.1...v0.17.3