This repository presents a minimal JavaScript implementation of the MVVM pattern to illustrate how reactive data binding systems work under the hood. It wires up data observation with watchers and a dependency-tracking mechanism, then connects that to a simple template compiler and directive system to update the DOM when state changes. Two-way bindings and computed values demonstrate how views can reflect model changes instantly while user input propagates back to the data layer. The code favors clarity over performance, exposing concepts such as property interception, change notification, and view updates in a few readable modules. Because it mirrors ideas found in larger frameworks, it’s an excellent teaching aid for developers who want to understand why features like computed properties and watchers behave as they do. It is not intended as a production framework; instead, it’s a compact lab for learning the principles behind MVVM and modern reactive libraries.
Features
- Two-way data binding between model and view model
- Command / action binding from view to view model
- ViewModel lifecycle management & change notification
- Support for nested / composite view models
- Template / binding expression parsing
- Integration hooks for UI frameworks or DOM updates