Что такое Knockout.js?
Knockout — отличная библиотека на JavascripЭто помогает создать насыщенный текстом пользовательский интерфейс с хорошими возможностями отображения и редактирования, используя только чёткую и чистую базовую модель данных. Всякий раз, когда ваш локальный интерфейс нужно обновлять автоматически (например, в зависимости от изменений в поведении пользователя или внешних источниках данных), KO можно легко реализовать и очень легко поддерживать.
Важные особенности KO:
Элегантное отслеживание зависимостей — каждый раз, когда модель источника данных меняется, она может автоматически обновлять указанное содержимое вашего интерфейса. Декларативное привязывание — оно просто и просто связывает ваш интерфейс с моделью источника данных, и вы можете использовать любой шаблон вложенной структуры для создания сложного динамического интерфейса. Хорошая масштабируемость — можно реализовать пользовательское поведение с помощью нескольких простых строк кода для привязки как новая декларация.
Другие преимущества:
Чистая библиотека Javascrip{filtering}t — совместима с любой серверной и клиентской технологией. Её можно хорошо применить к существующим приложениям — без необходимости менять основную архитектуру программы. Простота — всего 13K после компрессии Gzip. Совместим с любыми крупными браузерами (IE 6+, Firefox 2+, Chrome, Safari и другими) Комплексный набор спецификаций (с разработкой, ориентированной на поведение) — это означает, что их можно легко проверить в новых браузерах или платформах. Разработчики, знакомые с Ruby on Rails, Asp.net MVC или другими технологиями MVC, могут обнаружить, что это форма MVC в реальном времени с декларативным синтаксисом. Другими словами, можно рассматривать KO как способ создать пользовательский интерфейс пользовательского интерфейса, редактируя данные JSON... Всё, что это для тебя делает.
Как им пользоваться?
Самый быстрый и увлекательный способ начать — это интерактивное обучение, и когда вы освоите самые базовые техники и освоите каждый онлайн-экземпляр, вы будете готовы работать над своими проектами.
Конкурируют ли KO и Jquery (прототип и т.д.) друг с другом или их можно использовать вместе?
Все любят Jquery! Раньше нам приходилось терпеть различные непоследовательные методы манипуляции объектами DOM, и появление Jquery стало отличной альтернативой неуклюжим фреймворкам прошлого, делая его гибким и простым в использовании. Jquery отлично подходит и прост в использовании для обработки элементов веб-страницы и обработки событий, тогда как KO решает другую проблему.
Если интерфейс интерфейса немного сложнее и содержит некоторое похожее поведение, если вы используете только Jquery, интерфейс будет сложнее и сложнее, чем вы думаете, и его обслуживание будет довольно дорогим. Рассмотрим пример: отображение списка элементов в таблице, указание количества списков в таблице и включение кнопки «Добавить», если их число меньше 5, иначе отключено. В Jquery нет базовой концепции модели данных, поэтому если хотите получить количество списков проектов, нужно делать выводы из таблиц/tr/div номеров. Если нужно отображать объём данных в определённых SPAN, не забывайте обновлять текст SPAN при добавлении новых данных. Конечно, нужно помнить, что когда общее число >=5, нужно отключить кнопку «Добавить». Затем, если вы хотите реализовать функцию Delete, нужно указать, какой элемент DOM нужно изменить после нажатия.
Чем это отличается в Knockout?
С KO всё становится очень просто. Это позволяет легко масштабировать сложность вашего проекта, не беспокоясь о возникающих несоответствиях данных. Он просто преобразует ваши данные в массив Javascrip{filter}t, а затем использует Foreach для привязки массива данных к таблице или набору div на странице. Каждый раз, когда меняется массив данных, интерфейс автоматически реагирует на изменение (не нужно указывать, как вставить новую строку или куда), а остальное — это синхронизация данных интерфейса. Например, вы можете указать следующий SPAN для отображения объёма данных:
Ну вот! Для обновления не нужно писать код, обновление зависит от изменений массива myItems. Аналогично, включение и отключение кнопки Add зависят от длины массива myItems, следующим образом:
После этого, если нужно реализовать функцию «Delete», не нужно указывать, как управлять элементами интерфейса, достаточно просто изменить модель данных.
Резюме: KO не намерен конкурировать с jQuery и другими подобными фреймворками для манипуляции DOM. KO предоставляет высокоуровневый способ корреляции модели данных с пользовательским интерфейсом.KO не зависит от самого jQuery, но вы можете использовать jQuery вместе, Яркие и мягкие изменения интерфейса требуют использования jQuery.
Ресурсы:
http://www.aizhengli.com/knockoutjs/50/knockout.html
http://knockoutjs.com/
|