La programmazione reattiva e MVVM sono due approcci che possono risolvere il problema della separazione del livello del dominio dall'interfaccia utente.
- MVVM esegue questa operazione definendo un viewmodel, che è una struttura dati mappata ai componenti dell'interfaccia utente. L'interfaccia utente visualizza i dati e, eventualmente, li aggiorna quando si verifica l'utente.
- un framework reattivo definisce un grafico di osservabili che notificano all'interfaccia utente che alcuni dati sono stati modificati
I framework reattivi stanno conquistando quote mentali, sia nelle piattaforme mainstream (con Rx in .net e java, react.js) che in altri posti sperimentali (FRP in haskell).
Ho utilizzato principalmente MVVM con angolare e trovo la semplicità del rapporto di espressività abbastanza soddisfacente, sebbene abbia lavorato solo su progetti di piccole / medie dimensioni con esso.
Che cosa fa un framework reattivo per lo sviluppatore che mvvm non lo fa?
C'è davvero una differenza? Ad esempio, knockout.js è pubblicizzato come un 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);