MVC 和 MVVM的区别
MVC:是前后端分层开发的思想,M是指Model层,控制数据库的操作 ,C是指Controller. 是指逻辑处理 ,V是指View,视图层,对前端业务的处理
MVVM:是前端视图层的分层开发思想。VM是M和V之间的调度者,V是页面中的视图,即页面中的html元素,M是页面中的数据,VM是M和V之间的调度,
当V中的元素需要数据的时候就是通过,VM来调度,实际上就是页面中的逻辑处理,提供数据的双向绑定。
MVVM的双向绑定的原理:
MVVM的双向绑定即 view变换引起model变化 ,model变化引起view变化
1.整个el模板进行扫描和指令分析,如果某个元素中是绑定的了事件就给这些元素绑定相应的事件,如果是某些元素中的由v-model v-bind等指令,就将该元素,绑定的data数据,以及要做的操作存放到Dep中指定的数据属性下。
2.当触发视图修改了数据的时候,发布者就监听到相应的数据变换(Object.defineProperty 中的set),并调用set方法,对data中的数据进行修改 ,然后通知Dep中该数据的订阅者们,让他们对其视图进行相应的操作。
Dep = {
name:{//name是data中的 数据。
_directives:[] //里面存放的是 data中数据所对的watches订阅者们。
}
}