对于MVVM 的理解?
- model view viewmodel model 是模型 数据 view是视图 模版(视图和模型是分离的)viewmodel 是连接model和view 的桥梁,正是因为viewmodel的存在 view和model才会完全分离,不会混在一起, view通过DOMListeners改变model 数据 model数据通过Data Bindings 来刷新view 视图
- M model 数据层 V view 视图层 VM view-model 视图模型层 通过视图模型把数据层和视图层练习起来,可以双向数据绑定,可以单向数据绑定
mvvm 双向数据绑定原理
-
Vue实现双向数据绑定的原理
-
Object.defineProperty()
-
Vue实现双向绑定主要是:采用数据劫持结合发布订阅者模式 通过Object.defineProperty()
-
来劫持各个属性的set和get 在数据变动时 发消息给订阅者
-
触发相应监听回调当把一个普通的JS对象传递给Vue实例来作为它的data选项时 vue将遍历他的属性 用Object .defineProperty() 将他们转为get和set
-
用户看不到get set但是再内部它们让vue追踪依赖在属性被访问和修改时通知变化
为什么用
- 就是为了减少操作DOM来优化性能