Knockout.js is a JavaScript MVVM library that provides declarative data binding and automatic UI refresh. It consists of a Model that defines the data structure, a ViewModel that adapts the model for presentation, and a View that presents the data. Knockout uses data-binding attributes to bind the View to the ViewModel and supports templating, computed values, and extensibility through custom bindings.
Related topics: