•Elegant dependency tracking – automatically updates the right parts of your UI whenever your data model changes.
•Declarative bindings – a simple and obvious way to connect parts of your UI to your data model. You can construct a complex dynamic UIs easily using arbitrarily nested binding contexts.
•Trivially extensible – implement custom behaviors as new declarative bindings for easy reuse in just a few lines of code.
•Can be added on top of your existing web application without requiring major architectural changes
•Compact – around 13kb after gzipping
•Works on any mainstream browser (IE 6+, Firefox 2+, Chrome, Safari, Edge, others)
•Comprehensive suite of specifications (developed BDD-style) means its correct functioning can easily be verified on new browsers and platforms
Developers familiar with Ruby on Rails, ASP.NET MVC, or other MV* technologies may see MVVM as a real-time form of MVC with declarative syntax. In another sense, you can think of KO as a general way to make UIs for editing JSON data… whatever works for you 🙂