mvvm

196 阅读1分钟

对于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来优化性能