2012-02-23 5 views

ответ

11

Нокаут - это шаблон MVVM, который работает с javascript ViewModel. Причина, по которой это хорошо работает с MVC, заключается в том, что сериализация в и из javascript-моделей в JSON очень проста.

Также он будет включен в состав MVC4. Вот видео по Knockout создателю о том, как использовать его для отдельных приложений, страниц в MVC4 (с новой функцией Web API от Microsoft):

http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2159

Но преимущества действительно что MVVM позволяет разрабатывать богатые UI, с гораздо меньшим количеством кодирования (если вы знакомы с Silverlight или WPF MVVM, вы поймете, что я имею в виду).

Учитывая ViewModel из:

var myViewModel = { myValue: 'some text' }; 

Вам не нужно связывать

$('#textBox').change(function() { myViewModel.myValue = $(this).val(); }) 

и реверс

$('#textBox').val(myViewModel.myValue) 

повсюду, или специальную обработку кода вычисленных свойств в вашем представлении в Knockout. Вы можете сделать все это очень красиво объектно-ориентированным способом.

<input type="text" data-bind="value: myValue" /> 

И все события подключены.

+0

Большое спасибо Paul за быстрый ответ. Да, я знаю MVVM в WPF, но все же я не могу найти каких-либо особых преимуществ в приложении MVC, так как предположим, что у меня есть 10 свойств в моей модели, и теперь мне нужно создать те же 10 свойств, что и Model, также привязать данные. Так почему я делаю дополнительный код? –

+0

Немедленные изменения в пользовательском интерфейсе при изменении данных. Если вам не нужны «как-живые» обновления, вам не нужен нокаут – soniiic

+0

ok. поэтому это означает, что если кто-то изменит мои данные, тогда пользовательский интерфейс будет автоматически обновлять значения без какого-либо запроса на сервер? –

2

В ПРЕИМУЩЕСТВА более структурированы, гибкий Клиентский JavaScript код. Вы можете разделить лучший пользовательский интерфейс и можете зайти так далеко, что в итоге вы получите «одностраничный сайт» ... , который выполняет только запросы json (если вы хотите), означает, что меньшее количество обращений к серверу меньше отвечает и т.д ...

И для меня действительно круто думает, это связывание с помощью наблюдаемых ...

http://knockoutjs.com/documentation/observables.html

Также проверьте это: MVC + Knockoutjs = Клиент стороны MVVM блаженство http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2378

0

Преимущества являются многочисленные, некоторые выдающиеся характеристики приведены ниже:

  • Целесообразность для подключения в любое время с элементами пользовательского интерфейса в модели данных.
  • Сложные и динамические модели данных.
  • Средства привязки данных при манипулировании хранящимися данными, отражающие его в пользовательском интерфейсе, и обновление пользовательского интерфейса с регулярными изменениями бэкэнд, если они есть.
  • Поддерживает управляемую событиями модель программирования и предлагает 100% -ную настройку.
  • Поддерживает IE, Firefox, Safari, Bing, Chrome и многие другие основные потоки браузеры.
  • Помогает избежать раздувания HTTP-диалога с презентационной логикой и презентацией разметки на сервере.
  • Он обеспечивает применение бизнес-правил, защиту данных и управление ими на веб-странице .
  • Он также предлагает ссылочную целостность и многие проверки функции в отношении рабочего процесса для дополнительной безопасности.
  • Knockoutjs предлагает выдающуюся расширяемость. Он имеет множество точек расширения и утилит для создания приложения.

Вы можете прочитать здесь из нашей статьи https://cynere.com/advantages-of-knockoutjs