Knockout.js (нокаут) — свободный JavaScript каркас веб-приложений, реализующий Model-View-ViewModel шаблон c образцами. Основными принципами являются: чёткое разделение доменных данных, компонентов отображения и отображаемых данных наличие чётко определённого слоя специализированного кода, задающего отношение компонентов отображения.

Автором библиотеки является сотрудник Microsoft, однако, по его словам библиотека останется такой, какой она является, и будет развиваться в направлении, определяемом лишь им самим и сообществом пользователей. Также он подчёркивает, что библиотека не является продуктом Microsoft.

На начало 2015 года библиотека была ранее использована на 17018 веб-сайтах, и продолжает использоваться на 29039 сайтах, в том числе на 55 из 10 тысяч наиболее популярных, например, на сайте компании Philips.

Особенности Декларативное связывание Автоматическое обновление интерфейса при изменении состояния данных модели Отслеживание зависимостей Прототипирование с использованием как собственных так и сторонних механизмов (например, jquery.tmpl)

Пример В данном примере, два текстовых поля привязаны к отслеживаемым переменным в модели данных. В случае изменения их значений будет вызвана функция, меняющая значение fullName, что соответственно изменит значение в представлении (HTML).

View (HTML) <p>First name: <input data-bind="value: firstName" /></p> <p>Last name: <input data-bind="value: lastName" /></p> <p>Full name: <strong data-bind="text: fullName"></strong></p>

View Model (JavaScript) function ViewModel() { this.firstName = ko.observable("Joe"); this.lastName = ko.observable("Bloggs");

this.fullName = ko.computed(function() { return this.firstName() + " " + this.lastName(); }, this); }

ko.applyBindings(new ViewModel());

См. также AngularJS jQuery

Примечания

Литература

Ссылки

Knockout MVC: A framework integrating KnockoutJS into ASP.NET Knockout JS: Helping you build dynamic JavaScript UIs with MVVM and ASP.NET Using Isotope with Knockout.js Примеры Knockout.js

Категория:Веб-фреймворки на JavaScript Категория:Библиотеки JavaScript Категория:JavaScript Категория:Свободное кроссплатформенное программное обеспечение