Knockout.js utiliza un patrón de diseño Model-View-ViewModel (MVVM), que es una variante del patrón clásico de Model-View-Controller (MVC). Como en el patrón MVC, el modelo es su información almacenada, y la ver Es la representación visual de esos datos. Pero, en lugar de un controlador, Knockout.js utiliza un ViewModel Como intermediario entre el modelo y la vista..
El ViewModel es una representación de JavaScript de los datos del modelo, junto con las funciones asociadas para manipular los datos. Knockout.js crea una conexión directa entre ViewModel y la vista, que es la forma en que puede detectar los cambios en los datos subyacentes y actualizar automáticamente los aspectos relevantes de la interfaz de usuario..
Figura 5: El patrón de diseño Modelo-Vista-VistaModeloLos componentes MVVM de nuestro ejemplo de carrito de compra se enumeran a continuación:
Knockout.js utiliza observables para rastrear las propiedades de un ViewModel. Conceptualmente, los observables actúan como variables de JavaScript normales, pero permiten que Knockout.js observar Sus cambios y actualizan automáticamente las partes relevantes de la vista..
Figura 6: Uso de observables para exponer las propiedades de ViewModelSolo observables exponer Las propiedades de un ViewModel. Para conectar un componente de interfaz de usuario en la vista a un observable particular, debe enlazar un elemento HTML para ello. Después de vincular un elemento a un observable, Knockout.js está listo para mostrar los cambios en ViewModel automáticamente.
Figura 7: Enlace de un componente de la interfaz de usuario a una propiedad observableKnockout.js incluye varios enlaces incorporados que determinan cómo aparece el observable en la interfaz de usuario. El tipo de enlace más común es simplemente mostrar el valor de la propiedad observada, pero también es posible cambiar su apariencia bajo ciertas condiciones, o llamar a un método de ViewModel cuando el usuario hace clic en el elemento. Todos estos casos de uso se cubrirán en las próximas lecciones..
El patrón de diseño Model-View-ViewModel, los elementos observables y los enlaces proporcionan la base para la biblioteca Knockout.js. Una vez que entienda estos conceptos, aprender Knockout.js es simplemente una cuestión de descubrir cómo acceder a los observables y manipularlos a través de los diversos enlaces integrados. En la siguiente lección, veremos por primera vez estos conceptos construyendo una aplicación simple de "¡Hola, mundo!".
Esta lección representa un capítulo de Nocaut sucintamente, un libro electrónico gratuito del equipo en Syncfusion.