2012-02-23 17 views

Respuesta

11

Knockout es un patrón MVVM que funciona con un javascript ViewModel. La razón por la que esto funciona bien con MVC es que la serialización hacia y desde los modelos de JavaScript en JSON es muy simple.

Además, se incluirá en MVC4. Aquí hay un video por el creador Knockout sobre cómo utilizarlo para aplicaciones de una sola página en MVC4 (con la nueva función de API Web de Microsoft):

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

Pero los beneficios son realmente tan MVVM le permite desarrollar rica interfaz de usuario con mucha menos codificación (si está familiarizado con Silverlight o WPF MVVM sabrá a qué me refiero).

Dado un modelo de vista de:

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

No es necesario para unirse

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

y el reverso de

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

por todo el lugar, o la manipulación de código especial de propiedades calculadas en su vista en Knockout. Puedes hacerlo todo de una forma muy agradable orientada a objetos.

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

Y todos los eventos están conectados.

+0

Muchas gracias Pablo por pronta respuesta. Sí, conozco MVVM en WPF, pero aún no puedo encontrar ninguna ventaja específica en la aplicación MVC, ya que supongo que tengo 10 propiedades en mi modelo y ahora tengo que crear las mismas 10 propiedades en vista. Modelo también para vincular los datos. Entonces, ¿por qué hago código adicional? –

+0

Cambios inmediatos en la interfaz de usuario cuando los datos cambian. Si no necesita actualizaciones "like-live", entonces no necesita knockout – soniiic

+0

ok. entonces, ¿significa que si alguien hace cambios en mis datos, entonces UI actualizará automáticamente los valores sin ninguna solicitud al servidor? –

2

Los benifits son más estructurado y flexible del lado del cliente código javascript. Puede particionar mejor la IU y puede ir tan lejos que termine con "un sitio web de una sola página" ... que solo hace solicitudes json (si lo desea) significa menos viajes redondos de servidor más pequeños responde , etc ...

Y para mí el pensar realmente interesante es la unión a través de los observables ...

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

también mira esto: MVC + Knockoutjs = Cliente MVVM lado de la dicha http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/2378

0

Las ventajas son numerosas, algunas características sobresalientes se destacan a continuación:

  • de viabilidad para conectar en cualquier momento con los elementos de la interfaz de modelo de datos.
  • Cree modelos de datos complejos y dinámicos con facilidad.
  • El enlace de datos ayuda a manipular los datos almacenados, reflejándolo en la interfaz de usuario y actualizando la interfaz de usuario con cambios frecuentes en el servidor, si corresponde.
  • Admite un modelo de programación basado en eventos y ofrece una personalización 100%.
  • Admite IE, Firefox, Safari, Bing, Chrome y muchos más navegadores de la corriente principal .
  • Ayuda a evitar la hinchazón del diálogo HTTP con la lógica de presentación y la presentación de marcado en el servidor.
  • Garantiza la aplicación de reglas comerciales, seguridad de datos y más control en la página web .
  • También ofrece integridad referencial y muchas características de validación en relación con el flujo de trabajo para mayor seguridad.
  • Knockoutjs ofrecen excelente extensibilidad. Tiene numerosos puntos de extensión y utilidades para construir una aplicación.

Puede leer más aquí desde nuestro artículo https://cynere.com/advantages-of-knockoutjs

Cuestiones relacionadas