1 说说对MVVM的理解
Model–View–ViewModel (MVVM) 是一个软件架构设计模式(确切的说是一种软件编码规范或者软件开发模式)
MVVM有助于将图形界面的开发与后端逻辑的开发分离开来。
2 MVC和MVVM
(1)MVC
![](https://i-blog.csdnimg.cn/blog_migrate/5633bdf44c09e60bc1cbf8fd43a9d58b.jpeg#pic_center)
MVC执行流程:
用户操作→View接收用户操作→Controller控制器处理用户操作→Model(数据持久化)→ 通知视图更新
(2)MVVM
![](https://i-blog.csdnimg.cn/blog_migrate/026f4d93c51e62af464c87ff5d2ce0ee.jpeg#pic_center)
MVVM 框架实现了数据的双向绑定,也就是实现了View和Model的自动同步:当数据改变时,我们不用再手动操作Dom元素来更新视图,因为它会自动变化。
- ViewModel能够观察到数据的变化,并通知视图更新
- ViewModel能够监听到视图的变化,并能够通知数据发生变化
而Vue就是一个MVVM的实现者,它的核心就是实现了DOM监听与数据绑定。
3 MVVM的优势
1、mvc和mvvm都是一种设计思想。 主要就是mvc中Controller演变成mvvm中的viewModel。 mvvm主要解决了mvc中大量DOM操作使页面渲染性能降低,加载速度变慢的问题 。
2、MVVM与MVC最大的区别就是:它实现了View和Model的自动同步:当Model的属性改变时,我们不用再自己手动操作Dom元素来改变View的显示,它会自动变化。
3、整体看来,MVVM比MVC精简很多,我们不用再用选择器频繁地操作DOM。
4 总结
理解两种模式的基本思想,根据需求选择适合的框架。MVVM自然有很多先进的地方,但有的项目选择MVC可能会更适合。在实践中比较两种模式的各个框架的优缺点,选择适合自己的架构模式,更有利于项目的高效开发。