Reaktive Programmierung und MVVM sind zwei Ansätze, mit denen das Problem der Trennung der Domänenschicht von der Benutzeroberfläche behoben werden kann.
- MVVM definiert dazu ein Ansichtsmodell, bei dem es sich um eine Datenstruktur handelt, die UI-Komponenten zugeordnet ist. Die Benutzeroberfläche zeigt die Daten an und aktualisiert sie möglicherweise, wenn ein Benutzer auftritt.
- Ein reaktives Framework definiert ein Diagramm von Observablen, die die Benutzeroberfläche darüber informieren, dass sich einige Daten geändert haben
Reaktive Frameworks gewinnen sowohl auf Mainstream-Plattformen (mit Rx in .net & java, react.js) als auch an experimentelleren Orten (FRP in haskell) an Bedeutung.
Ich habe hauptsächlich MVVM mit Winkel verwendet und finde das Verhältnis von Einfachheit zu Ausdruckskraft ziemlich zufriedenstellend, obwohl ich nur an kleinen / mittleren Projekten damit gearbeitet habe.
Was kauft ein reaktives Framework dem Entwickler, was mvvm nicht tut?
Gibt es wirklich einen Unterschied? Beispielsweise wird knockout.js als mvvm-Framework beworben, hat jedoch ein reaktives Gefühl in der Benutzeroberfläche:
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);