Version 0.17.3
Pre-release
Pre-release
What's Changed
Breaking Changes
- New way to instantiate signals:
createState()->new State()createComputed()->new Memo()(sync) ornew 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
Collectionsignal type for read-only derived reactive lists - new
Refsignal 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