Knockout.js
Knockout.js (англ. нокаут) —свободныйJavaScriptкаркас веб-приложений, реализующийModel-View-ViewModel шаблон c образцами. Основными принципами являются:
- чёткое разделение доменных данных, компонентов отображения и отображаемых данных
- наличие чётко определённого слоя специализированного кода, задающего отношение компонентов отображения.
Автором библиотеки является сотрудникMicrosoft, однако, по его словам библиотека останется такой, какой она является, и будет развиваться в направлении, определяемом лишь им самим и сообществом пользователей. Также он подчёркивает, что библиотека не является продуктом Microsoft[3].
На начало 2015 года библиотека была ранее использована на 17018 веб-сайтах, и продолжает использоваться на 29039 сайтах, в том числе на 55 из 10 тысяч наиболее популярных[4], например, на сайте компанииPhilips[5].
Особенности
[править |править код]- Декларативное связывание
- Автоматическое обновление интерфейса при изменении состояния данных модели
- Отслеживание зависимостей
- Прототипирование с использованием как собственных так и сторонних механизмов (например,jquery.tmpl)
Пример
[править |править код]В данном примере, два текстовых поля привязаны к отслеживаемым переменным в модели данных. В случае изменения их значений будет вызвана функция, меняющая значениеfullName, что соответственно изменит значение в представлении (HTML).
View (HTML)
[править |править код]<p>Firstname:<inputdata-bind="value: firstName"/></p><p>Lastname:<inputdata-bind="value: lastName"/></p><p>Fullname:<strongdata-bind="text: fullName"></strong></p>
View Model (JavaScript)
[править |править код]functionViewModel(){this.firstName=ko.observable("Joe");this.lastName=ko.observable("Bloggs");this.fullName=ko.computed(function(){returnthis.firstName()+" "+this.lastName();},this);}ko.applyBindings(newViewModel());
См. также
[править |править код]Примечания
[править |править код]- ↑Release 3.5.1 — 2019.
- ↑npmjs
- ↑Steven Sanderson's blog post 'Hello, Microsoft' (неопр.). blog.stevensanderson.com (3 ноября 2010). Дата обращения: 22 октября 2014. Архивировано 20 ноября 2014 года.
- ↑Статистика использования Knockout.js на веб-сайтах (англ.). Дата обращения: 17 января 2015. Архивировано 18 января 2015 года.
- ↑Использование Knockout.js на веб-сайтах (англ.). Дата обращения: 17 января 2015. Архивировано 27 февраля 2015 года.
Литература
[править |править код]- Munro, J. Knockout.js: Building Dynamic Client-Side Web Applications. — O'Reilly Media, 2014. — 102 p. —ISBN 9781491914328.
- Munro, J. ASP. NET MVC 5 with Bootstrap and Knockout. Js: Building Dynamic, Responsive Web Applications. — O'Reilly Media, Incorporated, 2015. — 200 p. —ISBN 9781491914397.
- Messora, R. Web App Testing Using Knockout.JS. — Packt Publishing Ltd, 2014. — 154 p. —ISBN 9781783982851.
- Moran, T. Mastering KnockoutJS. — 2014. — 270 p. —ISBN 9781783981014.
Ссылки
[править |править код]- knockoutjs.com — официальный сайт Knockout.js
- 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 (англ.)