VUE基础面试题(1)

MVC 和 MVVM 区别

MVC 全名是 Model View Controller,

image.png

是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范
Model(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据
View(视图):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的
Controller(控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据

MVC 的思想: Controller 负责将 Model 的数据用 View 显示出来,在 Controller 里面把 Model 的数据赋值给 View,显示在前端,可以让大家能够看到

MVVM 新增了 VM 类

image.png

ViewModel 层:做了两件事达到了数据的双向绑定
一是通过 数据绑定的方式 将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。
二是 通过 DOM 事件监听 将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。
MVVM 与 MVC 最大的区别就是:它实现了 View 和 Model 的自动同步,也就是当 Model 的属性改变时,我们不用再自己手动操作 Dom 元素,来改变 View 的显示,而是改变属性后该属性对应 View 层显示会自动改变(对应Vue数据驱动的思想)

MVVM 比 MVC 精简,简化了业务与界面的依赖,解决了数据频繁更新的问题,不用再用选择器操作 DOM 元素。
在 MVVM 中,View 不知道 Model 的存在,Model 和 ViewModel 也观察不到 View,这种低耦合模式提高代码的可重用性

为什么官方要说 Vue 没有完全遵循 MVVM 思想呢?

严格的 MVVM 要求 View 不能和 Model 直接通信,而 Vue 提供了$refs 这个属性,让 Model 可以直接操作 View,违反了这一规定,所以说 Vue 没有完全遵循 MVVM。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 MVC 和 MVVM 区别 MVC MVC 全名是 Model View Controller,是模型(mod...
    c88cfe19384a阅读 1,563评论 0 1
  • 来源: 看面试题,也是一种修行啊.. 试题 1.什么是 mvvm?MVVM 是 Model-View-ViewMo...
    squidbrother阅读 270评论 0 1
  • vue.jsjavascript 看看面试题,只是为了查漏补缺,看看自己那些方面还不懂。切记不要以为背了面试题,就...
    Leson17阅读 2,854评论 0 13
  • Vue.js面试题整理 一、什么是MVVM? MVVM是Model-View-ViewModel的缩写。MVVM是...
    裘马轻狂大帅阅读 591评论 0 3
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,605评论 28 53