说说你对MVC和MVVM的理解
-
MVC是一种设计模式,全称是Model(模型)、View(视图)和Controller(控制)。
- Model(数据层):储存和管理数据
- View(视图层):展示UI、响应用户的交互
- Controller(控制层):监听数据的改变、控制视图行为和处理用户交互
这三层紧密联系,又互相独立,每一层内部的变化不影响其他层。每一层对外提供接口,供上一层调用。实现程序的模块化
MVVM是对MVC的增强版
将MVC中Controller的数据和逻辑处理部分抽离出来,放在了ViewModel中,这样只需做好View与ViewModel的数据绑定既可。
(项目复杂度越来越高之后,MVC中的Controller会变得越来越臃肿,难以维护,所以将其中的数据和逻辑处理抽离出的MVVM更佳)
-
mvc: View 传送指令到 Controller Controller 完成业务逻辑后,要求 Model 改变状态 Model 将新的数据发送到 View,用户得到反馈 所有通信都是单向的。 Angular它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。 组成部分Model、View、ViewModel
View:UI界面 ViewModel:它是View的抽象,负责View与Model之间信息转换,将View的Command传送到Model; Model:数据访问层