KnockoutJS - Cadre MVVM

Model-View-ViewModel (MVVM)est un modèle de conception architecturale pour le développement d'applications logicielles. MVVM a été développé par l'architecte Microsoft John Gossman en 2005. Ce modèle est dérivé du modèle Model-View-Controller (MVC). L'avantage de MVVM est qu'il sépare l'interface utilisateur graphique de la couche application de la logique métier. MVVM est responsable du traitement des données du modèle sous-jacent de manière à ce qu'il soit représenté et géré très facilement. ViewModel dans MVVM représente une version abstraite de l'état et des actions de View.

Les classes de vue ne savent pas que les classes Model et ViewModel existent, ainsi que Model et ViewModel ne savent pas que View existe. Model ne sait pas non plus que ViewModel et View existent.

Architecture

Vue

View est une interface utilisateur graphique créée à l'aide d'un langage de balisage pour représenter des données. View se lie aux propriétés d'un ViewModel via un concept de liaison de données, qui se connecte indirectement aux données du modèle. La vue n'a pas besoin d'être modifiée pour toute modification effectuée dans ViewModel. Les modifications apportées aux données dans ViewModel sont automatiquement propagées dans View en raison de la liaison.

Modèle

Le modèle est une donnée de domaine ou un objet métier, qui contient des données en temps réel. Le modèle ne porte pas de comportements. Le comportement est principalement implémenté dans la logique métier.

VoirModèle

ViewModel est l'endroit central, où les données de la logique d'affichage de Model et de View sont regroupées. ViewModel contient l'état dynamique des données. Il existe un liant implicite entre View et ViewModel pour communiquer entre eux. Cette liaison comprend les données déclaratives et la liaison de commande. La synchronisation de View et ViewModel est réalisée via cette liaison. Toute modification effectuée dans View est reflétée dans ViewModel, et de même, toute modification dans ViewModel est automatiquement reflétée dans View. L'existence de ce mécanisme de liaison bidirectionnelle est un aspect clé de ce modèle MVVM.