前端面试题:什么是MVVM,VUE是如何实现MVVM的

489 阅读1分钟

什么是MVVM

MVVM是基于MVC和MVP模式,它的目的是更清晰把视图(UI)与应用程序中的业务逻辑,行为区分开。 直白一点就是,这个模式让Model,View,ViewModel不纠缠在一起,让它们分工明确。

Model 数据层,它仅仅关注数据本身,不关心任何行为

VIEW 视图层,对应的就是用户操作界面

ViewModel 业务逻辑层.利用双向绑定技术,使得 Model 变化时,ViewModel 会自动更新,而 ViewModel 变化时,View 也会自动变化。

不同的框架中实现双向绑定绑定方式有所不同

  • 数据劫持(vue)
  • 脏值检查(react,angular)

VUE实现MVVM

VUE采用数据劫持&发布订阅模式的方式,通过ES5提供的 Object.defineProperty() 方法来劫持(监控)各属性的 getter 、setter ,并在数据发生变动时通知订阅者,触发相应的监听回调。

VUE实现双向数据绑定,大致可以划分三个模块:数据劫持Observer、模板编译Compile、观察者Watcher