我在东北烤地瓜

I am kaodigua I am chirourou I am qiaodaima

导航

MVVM、MVC 架构思想

MVC

一种设计模式,mvc分别表示M数据层,V视图层,C控制层

视图层跟数据层是独立的,不能直接通信,是通过控制层来将model中的数据拿给view用,通过用户在视图层输入的指令来选取数据层中的数据

这样是为了解耦跟重用

 

MVVM 设计思想

M数据,V视图,VM视图模型调用数据渲染视图的 

MVVM模式中的视图层跟数据层也是独立的,通过VM来通信,当数据变化VM监听到这种变化通知视图做更新,当用户操作视图VM通知数据做改动

区别于MVC的控制层,vm将数据转换或封装

vm两个方向, (1)将模型转为视图 后端数据转为看到的页面  用数据绑定实现

        (2)视图转为模型  所见页面转为后端数据         用DOM事件监听实现

两个方向都实现叫数据的双向绑定

MVVM模式实现的是业务逻辑组件的重用,MVC模式出现的较早,vm也不是完全取代了mvc的控制器

vue中双向数据绑定的实现 观察者--订阅者

new Vue的时候vue就进入了初始化阶段

一方面,将JS对象传给vue实例的data时,vue(通过遍历)会劫持监听所有属性,用Object.defineProperty()将这些方法转换为getter,setter方法

当data中属性被访问调用getter方法,data中属性被改变时,调用setter方法

另一方面,vue的指令编辑器会对vue元素节点的指令进行解析,初始化视图,订阅watcher来更新视图,当数据发生变化,setter方法被触发后,setter会立即调用Dep.notifty,dep开始遍历所有订阅者,调用订阅者updata方法,通知视图做更新

 

posted on 2020-06-29 13:07  我在东北烤地瓜  阅读(152)  评论(0编辑  收藏  举报