什么是MVVM
Model-View-View-ViewModel 是一个软件架构的设计模式 是一种简化用户界面的事件驱动变成方式
MVVM源于MVC(Model-View-Controller)模式 促进了前端开发和后端业务逻辑分离 提高了前端的效率 MVVVM 的核心是ViewModel层 她就像是一个中转站 负责转换Model中的数据 根据对象来让数据变得容易使用和管理 该层向上与视图层进行数据双向绑定 向下Model层通过接口进行数据请求
view 层
view是视图层 也就是用户界面 前端主要由HTML和CSS来构建
model层
model 是指数据模型 泛指后端进行各种业务逻辑处理和数据操控 对于前端来说就是后端提供的api接口
viewmodel 层
viewmodel是前端开发人员组织生成的视图数据层 前端对在后端获取的model数据进行转换处理 做二次封装已生成符合view层使用预期的视图数据模型 viewmodel 所封装出现的数据模型包括视图的状态和行为两部分而model层的数据模型只是包含状态 比如页面这一块展示什么 页面加载是发生了什么 点击这一块发生了什么 视图状态和行为都封装在了viewmodel里这样的封装使得viewmodel可以完整的描述view
MVVM框架实现了双向数据绑定 这样viewmodel的内容会实现在view层前端开发者再也不必低效又麻烦的通过操作dom去更新视图 只需要维护viewmodel更新数据视图自动得到相应的更新 这样view层展现的不是model层的数据 而是viewmodel的数据 又viewmodel负责与model层交互这就完全解耦了view和model 这个解耦是至关重要的 他是前后端分离方案实施的重要一环
既然mvvm是由mvc演变而来的 那么mvc是什么呢
model view controller 模型 视图 控制器 数据和页面分离 将众多的逻辑业务聚集到一个部件里面在需要改进和个性化定制界面及用户交互的同时 不需要重新渲染业务
首先进行人机交互 用户输入 根据用户输入的指令和数据传递给业务模型(c)进行逻辑判断 数据库中存取(m)根据业务逻辑选择不同的视图(v) 将结果反馈给用户 用户得到反馈 这样行城的一个闭环
观察者和被观察者 观察者也被称为监听者对应到mvc中 model是被观察的对象 view是观察者 model层一旦发生变化 view层被通知更新