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);