Knockout.js utilise un modèle de conception Model-View-ViewModel (MVVM), qui est une variante du modèle classique Model-View-Controller (MVC). Comme dans le modèle MVC, le modèle est vos données stockées, et le vue est la représentation visuelle de ces données. Mais, au lieu d’un contrôleur, Knockout.js utilise un ViewModel comme intermédiaire entre le modèle et la vue.
ViewModel est une représentation JavaScript des données du modèle, ainsi que des fonctions associées permettant de manipuler les données. Knockout.js crée une connexion directe entre ViewModel et la vue, ce qui permet de détecter les modifications apportées aux données sous-jacentes et de mettre à jour automatiquement les aspects pertinents de l'interface utilisateur..
Figure 5: Le modèle de conception Model-View-ViewModelLes composants MVVM de notre exemple de panier d'achat sont répertoriés comme suit:
Knockout.js utilise observables suivre les propriétés d'un ViewModel. Conceptuellement, les observables agissent comme des variables JavaScript normales, mais elles laissent Knockout.js observer leurs modifications et mettre à jour automatiquement les parties pertinentes de la vue.
Figure 6: Utilisation d'observables pour exposer les propriétés ViewModelObservables seulement exposer les propriétés d'un ViewModel. Pour connecter un composant d’interface utilisateur dans la vue à une observable particulière, vous devez: lier un élément HTML à elle. Après avoir lié un élément à un observable, Knockout.js est prêt à afficher automatiquement les modifications apportées au ViewModel..
Figure 7: Liaison d'un composant d'interface utilisateur à une propriété observableKnockout.js inclut plusieurs liaisons intégrées qui déterminent la manière dont l'observable apparaît dans l'interface utilisateur. Le type de liaison le plus courant consiste simplement à afficher la valeur de la propriété observée, mais il est également possible de modifier son apparence dans certaines conditions ou d'appeler une méthode du ViewModel lorsque l'utilisateur clique sur l'élément. Tous ces cas d'utilisation seront abordés au cours des prochaines leçons.
Le modèle de conception Model-View-ViewModel, les observables et les liaisons constituent la base de la bibliothèque Knockout.js. Une fois que vous avez compris ces concepts, apprendre Knockout.js consiste simplement à comprendre comment accéder aux observables et les manipuler via les différentes liaisons intégrées. Dans la prochaine leçon, nous aborderons pour la première fois de manière concrète ces concepts en créant une application simple «Hello, World!»..
Cette leçon représente un chapitre de Knockout Succinctly, un eBook gratuit de l'équipe de Syncfusion.