Что такое Knockout.js?
Knockout - это библиотека JavaScript, которая позволяет связывать элементы HTML с любой моделью данных и основана на шаблоне MVVM, который позволяет создавать многофункциональные, гибкие пользовательские интерфейсы для отображения и редактора с чистой базовой моделью данных. Knockout.js совместим с любыми типами клиентских или серверных технологий.
Основные функции Knockout.js:
· Декларативная привязка - элементы HTML DOM связаны с моделью с использованием очень простого синтаксиса с использованием атрибута привязки данных. С помощью этой функции легко добиться отзывчивости. Возможность создавать собственные привязки внутри привязки данных.
· Отслеживание зависимостей - связь между атрибутами KO и функциями / компонентами библиотеки KO очевидна. Автоматически отслеживает изменения данных в атрибуте KO и обновляет соответствующие затронутые области.
· Автоматическое обновление пользовательского интерфейса. Когда в модель представления вносятся изменения, они автоматически меняются в пользовательском интерфейсе и наоборот.
· Шаблоны. Это лучший способ создания сложных структур пользовательского интерфейса.
· Расширяемый - реализует настраиваемое поведение всего в нескольких строках кода в виде новых декларативных привязок для удобного повторного использования.
Преимущества использования Knockout.js
· Возможность легко создавать сложные динамические модели данных.
· При изменении модели данных автоматически обновляется пользовательский интерфейс.
· Это чистая библиотека JavaScript, поскольку она работает с любой серверной или клиентской технологией.
· Работает во всех основных браузерах (Internet Explorer, Chrome, Firefox)
Почему мы должны использовать Knockout?
Если мы рассмотрим пример интерфейса заказа еды на веб-сайте заказа еды онлайн, когда пользователь отменяет заказ из системы, мы должны удалить модель данных позиции и связанные элементы html из интерфейса заказа еды и изменить общую цену. Если мы не будем использовать для этого knockout, вы напишете обработчики событий и прослушиватели для отслеживания зависимости.
С такими сложными проблемами мы можем справиться с помощью Knockout.js. Потому что он автоматически отслеживает зависимости между элементами HTML и лежащими в их основе данными.
Нокаут против jQuery
Knockout - это похожая библиотека JavaScript, такая как jQuery. Knockout использует фреймворк MVVM, а jQuery использует фреймворк манипулирования DOM. Основная цель jQuery - сделать JavaScript-разработчика дружественным, а цель нокаута - привязать необработанные данные к модели, что упростит для разработчиков. Knockout.js действует как дополнение к другим веб-технологиям, таким как jQuery, MooTools.
Заключение
Knockout.js не заменяет jQuery, как вы поняли из части их приложения. Между ними нет конкуренции, и разработчик должен работать бок о бок с ними обоими. Использование jQuery экономит время разработчика, в то время как использование нокаута в основном полезно для привязки данных. А также минимальная потребность в кодировании, так как многие проблемы решаются автоматически, например, обновление необходимых изменений в пользовательском интерфейсе и бэкэнд, наоборот.