Knockout (веб-фреймворк)

Библиотека JavaScript
Нокаутировать
Оригинальный автор(ы)Стив Сандерсон
Первоначальный выпуск5 июля 2010 г. ( 2010-07-05 )
Стабильный релиз
3.5.1 / 5 ноября 2019 г. ; 5 лет назад ( 2019-11-05 )
РепозиторийРепозиторий Нокаутов
Написано вJavaScript
Размер59 КБ минифицированный / 283 КБ (режим разработки)
ТипБиблиотека JavaScript
ЛицензияМассачусетский технологический институт
Веб-сайтknockoutjs.com

Knockout — это автономная реализация JavaScript- шаблона Model–View–ViewModel . Поэтому основные принципы таковы:

  • четкое разделение между данными домена, компонентами представления и данными, которые должны быть отображены
  • наличие четко определенного слоя специализированного кода для управления отношениями между компонентами представления

Последний использует собственные функции управления событиями языка JavaScript.

Эти функции оптимизируют и упрощают спецификацию сложных взаимосвязей между компонентами представления, что, в свою очередь, делает отображение более отзывчивым и расширяет возможности пользователя.

Knockout был разработан и поддерживается как проект с открытым исходным кодом Стивом Сандерсоном.

Функции

Knockout включает в себя следующие функции:

  • Декларативные привязки
  • Автоматическое обновление пользовательского интерфейса (при изменении состояния модели данных пользовательский интерфейс обновляется автоматически)
  • Отслеживание зависимостей Шаблонизация (содержит специальный шаблонизатор, но могут использоваться и другие шаблонизаторы)

Примеры

1. В этом примере два текстовых поля привязаны к наблюдаемым переменным в модели данных. Отображение "полного имени" привязано к зависимому наблюдаемому, значение которого вычисляется в терминах наблюдаемых. При редактировании любого из текстовых полей отображение "полного имени" автоматически обновляется без явной обработки событий.

Просмотреть модель (JavaScript)

function ViewModel ( ) { this.firstName = ko.observable ( " " ) ; this.lastName = ko.observable ( " " ) ;         это.полноеИмя = ко.вычисленное ( функция ( ) { вернуть это.первоеИмя ( ) + " " + это.последнееИмя ( ) ; } , это ) ; }             ко . applyBindings ( новая ViewModel ()); 

2. Создание пользовательских обработчиков привязки в KnockoutJS

Используйте объект ko.bindingHandlers, чтобы указать имя пользовательской привязки и создать функцию init или update при создании пользовательского обработчика привязки. Функция init вызывается, когда привязка применена к элементу, что идеально подходит для одноразовой инициализации. Всякий раз, когда изменяется привязанный наблюдаемый объект, вызывается функция update, которая позволяет вам реагировать на изменение данных.

Вот простой пример пользовательского обработчика привязки, который применяет элемент выбора даты jQuery UI к элементу ввода:

Пользовательский обработчик привязок

ko.bindingHandlers.datepicker = { init : function ( element , valueAccessor ) { $ ( element ) .datepicker ({ onSelect : function ( date ) { var observable = valueAccessor ( ); observable ( date ); } }); }, update : function ( element , valueAccessor ) { var value = ko.unwrap ( valueAccessor ( )); $ ( element ) .datepicker ( " setDate " , value ) ; } } ;                             

Ссылки

  • Папа, Джон (февраль 2012 г.). «Начало работы с Knockout». Журнал MSDN . Получено 9 марта 2012 г.
  • Папа, Джон (март 2012 г.). «Встроенные привязки Knockout для HTML и JavaScript». Журнал MSDN . Получено 9 марта 2012 г.
  • «Mastering Knockoutjs: A Comprehensive Guide for Dynamic Web Apps». Февраль 2024 г. Получено 26 февраля 2024 г.
  • Официальный сайт


Взято с "https://en.wikipedia.org/w/index.php?title=Knockout_(web_framework)&oldid=1246703325"