Knockout.js utilizza un modello di progettazione Model-View-ViewModel (MVVM), che è una variante del modello classico Model-View-Controller (MVC). Come nel modello MVC, il modello sono i tuoi dati memorizzati, e il vista è la rappresentazione visiva di quei dati. Ma, invece di un controller, Knockout.js utilizza a ViewModel come intermediario tra il modello e la vista.
ViewModel è una rappresentazione JavaScript dei dati del modello, insieme alle funzioni associate per la manipolazione dei dati. Knockout.js crea una connessione diretta tra ViewModel e la vista, che è il modo in cui può rilevare le modifiche ai dati sottostanti e aggiornare automaticamente gli aspetti rilevanti dell'interfaccia utente.
Figura 5: modello di progettazione Model-View-ViewModelI componenti MVVM del nostro esempio del carrello sono elencati come segue:
Knockout.js utilizza osservabili per tracciare le proprietà di ViewModel. Concettualmente, le osservabili agiscono proprio come le normali variabili JavaScript, ma consentono a Knockout.js osservare le loro modifiche e aggiorna automaticamente le parti rilevanti della vista.
Figura 6: utilizzo di osservabili per esporre le proprietà ViewModelSolo osservabili esporre proprietà di ViewModel. Per connettere un componente dell'interfaccia utente nella vista a un particolare osservabile, è necessario legare un elemento HTML ad esso. Dopo aver vincolato un elemento a un osservabile, Knockout.js è pronto per visualizzare automaticamente le modifiche a ViewModel.
Figura 7: Associazione di un componente dell'interfaccia utente a una proprietà osservabileKnockout.js include diversi collegamenti incorporati che determinano il modo in cui l'osservabile appare nell'interfaccia utente. Il tipo più comune di associazione è semplicemente visualizzare il valore della proprietà osservata, ma è anche possibile modificarne l'aspetto in determinate condizioni oppure chiamare un metodo di ViewModel quando l'utente fa clic sull'elemento. Tutti questi casi d'uso saranno coperti nelle prossime lezioni.
Il modello di progettazione Model View-View-View, i parametri osservabili e le associazioni forniscono le basi per la libreria Knockout.js. Una volta compresi questi concetti, l'apprendimento di Knockout.js consiste semplicemente nel capire come accedere agli osservabili e manipolarli tramite i vari collegamenti incorporati. Nella prossima lezione, daremo il nostro primo sguardo concreto a questi concetti creando una semplice applicazione "Hello, World!".
Questa lezione rappresenta un capitolo da Knockout in modo succinto, un eBook gratuito dal team di Syncfusion.