No veo KnockOut (KO) y JQuery como tecnologías competidoras.
KO no está diseñado para ser un reemplazo independiente de las bibliotecas JavaScript existentes (es decir, jQuery, Prototype, MooTools). Debería pensarse más en la línea de una “mejora a” en lugar de un “reemplazo” de estas bibliotecas.
No estoy seguro de lo que Dan quiso decir al decir que KO no vincula nuestros modelos al DOM porque, según lo veo, eso es exactamente lo que debe hacer.
- Cómo solucionar el problema Err_Connection_Refused para algunos sitios web en todos los navegadores en mac
- ¿Existe un creador de sitios web con el que pueda usar mi propio alojamiento y dominio?
- ¿Cuánto tiempo lleva diseñar un buen sitio web?
- ¿Cuál es un buen IDE para desarrollar aplicaciones web front-end en AngularJS?
- Cómo insertar plantillas en asp.net
KO permite que el desarrollador aproveche el patrón Model View ViewModel (MVVM) para crear un ViewModel específico de la IU que siempre esté perfectamente sincronizado con los elementos DOM de la IU utilizados para mostrar, actualizar, eliminar o crear datos en el ViewModel.
Esto significa que con una codificación relativamente pequeña, nunca tendrá que preocuparse por perder datos que han sido modificados, agregados o eliminados por la interacción del cliente. Los datos en ViewModel se rastrean y actualizan constantemente sin más participación del desarrollador.
MVVM es una abstracción poderosa en sí misma, pero también se puede implementar en el servidor con POCO (y supongo que con POJO); sin embargo, un beneficio adicional de KO es que, como todos los JS, se ejecuta en el cliente y puede minimizar el tamaño de las respuestas de nuestro servidor y / o el procesamiento del servidor, lo que aumenta la eficiencia de nuestra aplicación a través de implementaciones de aplicación de página única (SPA).
Entonces, en conclusión rápida, KO proporciona una abstracción JS del lado del cliente que mejora su biblioteca de JavaScript de las siguientes maneras:
- Simplifica enormemente la sincronización entre la interfaz de usuario del cliente y el servidor.
- Aprovecha el patrón de diseño MVVM para aumentar la modularidad y proporcionar una separación limpia de preocupaciones e implementaciones cohesivas.
- Mantiene la gestión del estado del modelo de IU en el cliente (donde pertenece).
- Disminuye (potencialmente) el tamaño de las respuestas del servidor y el tráfico cliente / servidor en general (acelerando así nuestras aplicaciones).
Recomiendo leer el patrón MVVM y cómo difiere de MVC. Los siguientes recursos son ejemplos en los que ViewModel está centrado en el servidor, pero le darán una buena idea de los beneficios del diseño.
Una vez que vea los beneficios generales del diseño, verá más fácilmente las ventajas adicionales de la sincronización (y otras características) proporcionadas por KO.
Model-View-ViewModel (MVVM) explicado
Patrón MVVM hecho simple
Conceptos básicos de los patrones de diseño de interfaz de usuario MVC, MVP y MVVM