Reactivity for WarpDrive built on alien-signals, the push-pull signals algorithm that also powers Vue 3.6's reactivity. It has two entry points:
installconfigures WarpDrive to back its signals and memos with this package's graph. Import it once at the top of your application:tsimport '@warp-drive/alien-signals/install';Other frameworks'
installentry points imported after it, such as@warp-drive/ember/install, register their signals with the same graph instead of replacing it, so one store re-renders components in every framework on the page. Memoized values such as derived fields then only recompute when a signal WarpDrive manages changes, not when state that only a framework tracks, such as an Ember@trackedproperty, changes.primitivesexports the graph itself: signals, memos, and aWatcherthat a framework integration uses to learn when the data it rendered changed.@warp-drive/reactis built on it.
The graph implements what WarpDrive's signal hooks need rather than the full TC39 Signals API. If your app already uses the TC39 Signals polyfill, use @warp-drive/tc39-proposal-signals instead.
Guides
- Setup: configure the build plugin and create a Store.
- Reactivity: how WarpDrive uses signals, and the hooks that let it use any signals implementation.
- Using Ember and React on the Same Page: share one store between frameworks by registering them with this package's graph.