对于VUE,我们都知道他是一个MVVM式的框架,那么什么是MVVM呢?
View层
:在Vue中是绑定对象的HTML
ViewModel层
:在Vue中是实例的VM对象
Model层
:在Vue中是data
,computed
,methods
等
Vue的响应式原理
发布订阅模式
Observe
:负责观察目标数据变化,如果数据变化,那么通知Dep
.
Dep
:负责进行依赖收集
首先,有个数组,专门来存放所有的订阅信息
其次,还要提供一个向数组中追加订阅信息的方法
然后,还要提供一个循环,循环时触发数组中的每个订阅信息
Watcher
:负责订阅一些事件,维护一个回调函数,当接收到Dep的通知时,执行回调函数
数据劫持
Vue.js则是采用数据劫持结合发布订阅模式的方式,通过Object.defineProperty()
来劫持各个属性的setter
,getter
,在数据变动时发消息给订阅者,触发相应的监听回调。
网友评论