Knockout es una implementación de JavaScript independiente del patrón Model-View-ViewModel con plantillas. Por tanto, los principios subyacentes son:
- una clara separación entre los datos del dominio, los componentes de visualización y los datos que se mostrarán
- la presencia de una capa claramente definida de código especializado para gestionar las relaciones entre los componentes de la vista
Autor (es) original (es) | Steve Sanderson |
---|---|
Versión inicial | 5 de julio de 2010 |
Lanzamiento estable | 3.5.1 / 5 de noviembre de 2019 |
Repositorio | Repositorio de Knockout |
Escrito en | JavaScript |
Tamaño | 59 KB minificado / 283 KB (modo de desarrollo) |
Tipo | Biblioteca de JavaScript |
Licencia | MIT |
Sitio web | knockoutjs |
Este último aprovecha las funciones nativas de gestión de eventos del lenguaje JavaScript.
Estas características agilizan y simplifican la especificación de relaciones complejas entre los componentes de la vista, lo que a su vez hace que la pantalla sea más receptiva y la experiencia del usuario más rica.
Knockout fue desarrollado y mantenido como un proyecto de código abierto por Steve Sanderson.
Características
Knockout incluye las siguientes características:
- Enlaces declarativos
- Actualización automática de la interfaz de usuario (cuando cambia el estado del modelo de datos, la interfaz de usuario se actualiza automáticamente)
- Plantillas de seguimiento de dependencias (contiene un motor de plantillas dedicado, pero se pueden usar otros motores de plantillas)
Ejemplo
En este ejemplo, dos cuadros de texto están vinculados a variables observables en un modelo de datos. La pantalla de "nombre completo" está vinculada a un observable dependiente, cuyo valor se calcula en términos de los observables. Cuando se edita cualquiera de los cuadros de texto, la visualización del "nombre completo" se actualiza automáticamente, sin manejo explícito de eventos.
Ver modelo (JavaScript)
function ViewModel () { esto . firstName = ko . observable ( "" ); esto . apellido = ko . observable ( "" ); esto . fullName = ko . calculado ( función () { devuelve esto . firstName () + "" + this . lastName (); }, esto ); }ko . applyBindings ( new ViewModel ());
Referencias
- Papa, John (febrero de 2012). "Introducción a Knockout" . Revista MSDN . Consultado el 9 de marzo de 2012 .
- Papa, John (marzo de 2012). "Enlaces incorporados de Knockout para HTML y JavaScript" . Revista MSDN . Consultado el 9 de marzo de 2012 .