mvvm
概念:mvvm是Model-View-ViewModel 的缩写,分别对应着:数据,视图,视图模型。Model是我们应用中的数据模型,View是我们的UI视图层,通过ViewModle,可以把我们Modle中的数据映射到View视图上,同时,在View层修改了一些数据,也会反应更新我们的Modle。简单理解就是双向数据绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。
以vue为例:
view 对应 template,vm 对应 new Vue({…}),model 对应 data
- view视图层
<p>Hello, {{ name }}!</p> --View层 --VUE中的单向绑定
<input v-model="name"> --View层 --VUE中的双向绑定
- model数据层
data: {
name: '' --Model层
}
- vm层
VUE框架已封装好
new Vue({…})
三者的关系
view可以通过事件绑定(或v-model指令)的方式影响model,model可以通过数据绑定的形式影响刀view ,viewModel是把model和view连起来的连接器
mvc模式概要(典型的框架有angular.js)
- 即model,view,controller即数据模型、视图、控制器。
view:视图层
model:业务数据层
controller:控制器。接收view层传递过来的指令,选取model层对应的数据,进行响应操作。 - 举一个现实中的列子,mvc如同一家商铺的运作模式,view层相当于是这家商铺的店面,model层相当于这家商铺的仓库,controller层相当于是这家撒谎给你普的执行部门。
特点:mvc有如下两种模式不管哪种模式,mvc的通信都是单项的,由图也可以看出,view层会从model层拿数据,因此mvc中的view层和model层还是存在耦合的。