Knockout.js

Материал из Википедии — свободной энциклопедии
Это старая версия этой страницы, сохранённая РоманСузи (обсуждение | вклад) в 07:19, 17 января 2015 (значимость?). Она может серьёзно отличаться от текущей версии.
Перейти к навигации Перейти к поиску
Knockout.js
Тип JavaScript-библиотека
Автор Steve Sanderson
Написана на JavaScript
Операционная система Кроссплатформенное ПО
Аппаратная платформа кроссплатформенность
Последняя версия 3.2.0[1] (12 августа 2014)
Репозиторий github.com/knockout/knoc…
Лицензия MIT License
Сайт knockoutjs.com

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

  • чёткое разделение доменных данных, компонентов отображения и отображаемых данных
  • наличие чётко определлённого слоя специализированного кода, определяющего отношение компонентов отображения.

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

Особенности

  • Декларативное связывание
  • Автоматическое обновление интерфейса при изменении состояния данных модели
  • Отслеживание зависимостей
  • Прототипирование с использование как собственных так и сторонних механизмов (например, 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());

Примечания

  1. https://github.com/knockout/knockout/releases/tag/v3.2.0
  2. Steven Sanderson's blog post 'Hello, Microsoft'. blog.stevensanderson.com (3 ноября 2010). Дата обращения: 22 октября 2014.

Ссылки

См. также

Шаблон:Фреймворки для веб-приложений