什么是 mvvm?
MVVM 是 Model-View-ViewModel 的缩写。mvvm 是一种设计思想。Model 层
代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑;View 代
表 UI 组件,它负责将数据模型转化成 UI 展现出来,ViewModel 是一个同步
View 和 Model 的对象。
在 MVVM 架构下,View 和 Model 之间并没有直接的联系,而是通过
ViewModel 进行交互,Model 和 ViewModel 之间的交互是双向的, 因此
View 数据的变化会同步到 Model 中,而 Model 数据的变化也会立即反应到
View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而 View 和
Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业
务逻辑,不需要手动操作 DOM, 不需要关注数据状态的同步问题,复杂的数据
状态维护完全由 MVVM 来统一管理。
mvvm 和 mvc 区别?
mvc 和 mvvm 其实区别并不大。都是一种设计思想。主要就是 mvc 中
Controller 演变成 mvvm 中的 viewModel。mvvm 主要解决了 mvc 中大量的
DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验。和当 Model
频繁发生变化,开发者需要主动更新到 View 。
vue 的优点是什么?
� 低耦合。视图(View)可以独立于 Model 变化和修改,一个 ViewModel 可
以绑定到不同的"View"上,当 View 变化的时候 Model 可以不变,当 Model
变化的时候 View 也可以不变。
� 可重用性。你可以把一些视图逻辑放在一个 ViewModel 里面,让很多 view
重用这段视图逻辑。
� 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设
计人员可以专注于页面设计,使用 Expression Blend 可以很容易设计界面并
生成 xml 代码。
� 可测试。界面素来是比较难于测试的,而现在测试可以针对 ViewModel 来
写。