Programowanie reaktywne i MVVM to dwa podejścia, które mogą rozwiązać problem oddzielenia warstwy domeny od interfejsu użytkownika.
- MVVM robi to, definiując viewmodel, który jest strukturą danych odwzorowaną na komponenty interfejsu użytkownika. Interfejs użytkownika wyświetla dane i może je zaktualizować, gdy wystąpi użytkownik.
- reaktywna struktura definiuje wykres obserwowalnych, które powiadamiają interfejs użytkownika o zmianie jakiegoś elementu danych
Reaktywne frameworki zyskują popularność, zarówno na głównych platformach (z Rx w .net i java, reag.js), jak i w bardziej eksperymentalnych miejscach (FRP w haskell).
Używałem głównie MVVM z kątownikiem i uważam stosunek prostoty do ekspresji za całkiem satysfakcjonujący, chociaż pracowałem z nim tylko przy małych / średnich projektach.
Co reaktywne środowisko kupuje programistom, czego nie robi mvvm?
Czy naprawdę jest jakaś różnica? Na przykład knockout.js jest reklamowany jako framework mvvm, ale ma reaktywne działanie w interfejsie:
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);