domma-reactive is a reactivity graph and a binding layer. Every page below takes one part of it, runs a small demo you can use, and shows you the source that demo is running - read from the file itself, so the listing can never drift from what the page does.
01Observables and computedsState you read through
.value, and derived values that discover their own inputs.
02BindingsTwelve kinds of data-* attribute, activated on markup your server already rendered.
03Keyed listsReconciled by key, so a row keeps its element - and its focus and half-typed input - when the list changes.
04ExpressionsA hand-written parser: operators, ternaries, helpers and, since 1.2, object and array literals. No eval.
05Components and slotsMarkup with its own private state, swapped by an observable, with holes the page can fill.
06ExtendersrateLimit and friends: hold the notification, never the write.
07Safety and warningsMistakes fail closed and say so, naming the element, the expression and the fix.
See them running
Mistakes fail closed, and the console says why
Reverse the list - the notes you typed go with their rows
Object and array literals, straight in the attribute
17 keystrokes, one announcement
A computed you can type into
At a glance
| Version | 1.2.0 - what's new |
| Size | 65 KB minified, about 21 KB gzipped, no dependencies |
| Exports | 33 named exports, TypeScript declarations included |
| Tests | 996, plus every export checked through require(), import() and a <script> tag |
| Security | No eval, no Function constructor - works under script-src 'self' |
| Licence | MIT |
New to it? The tutorial builds a working contacts page in twelve steps. Moving from Knockout? See how it compares.