La programmazione reattiva e MVVM sono due approcci che possono affrontare il problema della separazione del livello di dominio dall'interfaccia utente.
- MVVM lo fa definendo un modello di visualizzazione, che è una struttura di dati mappata ai componenti dell'interfaccia utente. L'interfaccia utente visualizza i dati e forse li aggiorna quando si verifica l'utente.
- un framework reattivo definisce un grafico di osservabili che avvisano l'interfaccia utente che alcuni dati sono cambiati
I framework reattivi stanno guadagnando quote mentali, sia nelle piattaforme mainstream (con Rx in .net e java, reazioni.js) sia in luoghi più sperimentali (FRP in haskell).
Ho usato principalmente MVVM con angolare e trovo il rapporto semplicità-espressività abbastanza soddisfacente, anche se ho lavorato solo su progetti medio / piccoli.
Che cosa compra un framework reattivo allo sviluppatore che mvvm non fa?
C'è davvero una differenza? Ad esempio, knockout.js è pubblicizzato come framework mvvm, ma ha una sensazione reattiva nella sua interfaccia:
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);