MVC:Controller负责将Model的数据用View显示出来,即将Model的数据赋值给View
MVVM:数据绑定:将数据转化为视图
DOM事件监听:将视图转化为数据
区别:
- MVVM实现了View和Model的自动同步,当Model的属性发生变化时,不用手动操作DOM元素来改变View,改变Model的属性后,相对应的视图也会发生改变。
- MVVM比MVC精简,简化了业务与界面的依赖,解决了数据频繁更新的问题,不需要用选择器操作DOM元素。在MVVM中,View不知道Model的存在,Model和ViewModel也观察不到View,这种低耦合模式提高了代码的可重用性
Vue没有完全遵循MVVM的思想,严格的MVVM要求View和Model不能直接通信,而Vue提供了$ref这个属性,让Model可以直接操作View