reactivejs.org
ReactiveJS
Reactive components in any DOM element. A small reactive framework where state, calculations and reverse bindings drive a plain DOM driver of tags, attributes and text.

About
The runtime primitives live under Reactive, and library modules such as Content,
Layout and Maths are their own globals. Link one script tag per module, describe
your state and calculations, and mount the result into any element on any page.
ReactiveJS combines two-way data binding, reversible calculations and automatic asynchronous handling, so that each piece of a program can be reasoned about locally, however large the program grows.
Features
Two-way binding
A value bound to an input updates from it and updates it, with no glue code.
Reversible calculations
A calculated value can be written back to, and the change flows to the values it came from.
Asynchronous by default
Values that arrive later are handled like any other, with no promises to manage.