view是视图层 也就是用户界面 前段主要由html和css来构成 为了方便地展现ViewModel或者Model层的数据
Model是指数据模型 泛指后端进行的各种业务逻辑处理和数据操控 主要围绕数据层系统展开 这里的难点主要在于需要和前段约定统一的接口规则
ViewModel由前段开发人员组织生成和维护的视图数据层 在这一层 前段开发者从后端获取取得到Model数据层进行转换出来 做第二封装 以生成符合View层使用预期的视图数据模型 视图状态和行为都封装在ViewModel里 这样的封装使得ViewModel可以完整第去描述View层
什么是MVVM
MVVM(Model-ViewModel)是一种软件架构设计模式,它是一种简化用户界面的事件驱动编程方式
在MVVM架构中 是不允许数据和视图直接通信的 只能通过ViewModel来通信 而ViewModel就是定义了一个Observer观察者 ViewModel是链接View和Model的中间件
ViewModel能够观察到数据的变化并对视图对应的内容进行更新
ViewModel能够监听视图的变化 并能够通知数据发生变化
到此 我们就明白了, VUE.js就是一个MVVM的实现者 它的核心就是实现了DOM监听与数据绑定
MVVM源自于经典的MVC(Model-view-Controller)模式MVVM的核心是ViewModel层 负责转换Model中数据对象来让数据变得更容易管理和使用其作用如下 :
该层向上与视图层进行双向数据绑定
向下与Model层通过接口请求进行数据交互
三 为什么要使用MVVM
低耦合:视图(view)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的View上,当View变化 的时候Model可以不变 当Model变化的时候 View也可以不变
可复用:可以 把一些三视图逻辑放到一个ViewModel里面 让很多View重用这段 视图逻辑
独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewModel) 设计人员可以专注页面设计
可测试:界面素来是比较难于测试的,而是在侧试可以针对ViewModel来写
MVVM的组成部分
View(HTML, CSS, Templater)
双向数据绑定
ViewModel(JavaScript,Runtime,Compiler)
AJAX jSON
Model
JAXA业务逻辑器
数据库