La programmation réactive et MVVM sont deux approches qui peuvent résoudre le problème de la séparation de la couche de domaine de l'interface utilisateur.
- MVVM le fait en définissant un modèle de vue, qui est une structure de données mappée à des composants d'interface utilisateur. L'interface utilisateur affiche les données et peut-être les met à jour lorsque l'utilisateur se produit.
- un cadre réactif définit un graphique d'observables qui notifie l'interface utilisateur que certaines données ont changé
Les frameworks réactifs gagnent en popularité, à la fois dans les plateformes grand public (avec Rx en .net et java, react.js) et dans des endroits plus expérimentaux (FRP dans haskell).
J'ai principalement utilisé MVVM avec angular, et je trouve le rapport simplicité / expressivité assez satisfaisant, même si je n'ai travaillé que sur des projets petits / moyens avec.
Qu'est-ce qu'un framework réactif achète au développeur que mvvm n'a pas?
Y a-t-il vraiment une différence? Par exemple, knockout.js est annoncé comme un framework mvvm, mais a une sensation réactive dans son interface:
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
Réponses:
Ce sont différents concepts non concurrents et ils peuvent facilement travailler ensemble pour produire un excellent résultat.
En termes simples:
MVVM est utile pour s'éloigner de l'encombrement codebehind (couplage GUI / modèle). Une approche réactive est utile pour réduire l'encombrement des événements / rappels.
Je recommanderais d'en apprendre un peu plus sur XAML / WPF car Microsoft est l'inventeur original de MVVM. Microsoft a également produit une très bonne implémentation de l'approche réactive: les extensions réactives.
Voici une tentative décente de les combiner:
http://www.reactiveui.net https://github.com/reactiveui/ReactiveUI
Question SO connexe:
/programming/1763411/reactive-extensions-rx-mvvm
la source