KnockoutJS - Framework MVVM

Model-View-ViewModel (MVVM)è un modello di progettazione architettonica per lo sviluppo di applicazioni software. MVVM è stato sviluppato dall'architetto Microsoft John Gossman nel 2005. Questo modello è derivato dal modello MVC (Model-View-Controller). Il vantaggio di MVVM è che separa l'interfaccia utente grafica del livello dell'applicazione dalla logica aziendale. MVVM è responsabile della gestione dei dati dal modello sottostante in modo tale da essere rappresentati e gestiti molto facilmente. ViewModel in MVVM rappresenta una versione astratta dello stato e delle azioni di View.

Le classi di visualizzazione non sanno che le classi Model e ViewModel esistono, inoltre Model e ViewModel non sanno che esiste View. Anche Model ignora l'esistenza di ViewModel e View.

Architettura

Visualizza

View è un'interfaccia utente grafica creata utilizzando il linguaggio di markup per rappresentare i dati. La vista si lega alle proprietà di un ViewModel tramite il concetto di associazione dati, che si connette indirettamente ai dati del modello. La vista non deve essere modificata per qualsiasi alterazione eseguita in ViewModel. Le modifiche apportate ai dati in ViewModel vengono propagate automaticamente in View a causa dell'associazione.

Modello

Il modello è dati di dominio o oggetto aziendale, che contiene dati in tempo reale. Il modello non porta comportamenti. Il comportamento è implementato principalmente nella logica aziendale.

ViewModel

ViewModel è il punto centrale, dove i dati di Model e la logica di visualizzazione di View sono raggruppati insieme. ViewModel mantiene lo stato dinamico dei dati. C'è un legante implicito tra View e ViewModel per comunicare tra loro. Questa associazione include dati dichiarativi e associazione di comandi. La sincronizzazione di View e ViewModel viene ottenuta tramite questa associazione. Qualsiasi modifica apportata in View si riflette in ViewModel e analogamente qualsiasi modifica in ViewModel si riflette automaticamente in View. L'esistenza di questo meccanismo di associazione a 2 vie è un aspetto chiave di questo modello MVVM.