响应式编程和MVVM是可以解决将域层与UI分离的问题的两种方法。
- MVVM通过定义视图模型来实现此目的,该视图模型是映射到UI组件的数据结构。UI显示数据,并可能在用户出现时进行更新。
- 一个反应式框架定义了一个可观察的图形,该图形通知UI某些数据已更改
在主流平台(.net和java中的Rx,react.js)和更多实验性的地方(在Haskell中的FRP)中,反应性框架都在引起人们的关注。
我主要使用带有角度的MVVM,尽管我仅使用它从事小型/中型项目,但我发现表现力比的简单性令人满意。
反应式框架购买了mvvm不买的开发者?
真的有区别吗?例如,knockout.js被宣传为mvvm框架,但在其界面中有一种反应:
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
MVVM是一种将表示关注与领域分离的模式。无框架的工具,可以用来实现这种分离模式。它们不是唯一的。
—
AlexFoxGill 2014年
@AlexG好吧,有一些工具可以协调视图模型和UI之间的通信。我称这些为MVVM框架。
—
西蒙·贝格
关键点-KnockoutJS 使用反应框架来实现MVVM分离关注点。AngularJS 使用脏检查来启用MVVM。它们只是实现模式的不同方式。也许您的问题是:“反应式范例在MVVM框架中实现了肮脏检查技术所没有的作用?”
—
AlexFoxGill 2014年
@AlexG,所以您会说这是一个实现细节?我认为它回答了我的问题。
—
西蒙·贝格
@Simon:我不会将其视为实现细节,而是更多地作为向ViewModel传达模型变化的不同方法
—
Bart van Ingen Schenau 2014年