mvvm和mvc的区别面试题,如何理解vue中的mvvm模式
本文主要介绍了网络访谈中的常见问题,MVC和MVVM的区别,以及为什么Vue不完全符合MVVM的困难答案。有需要的朋友可以借鉴一下,希望能有所帮助。
目录
MVC和MVVM的区别MVC优缺点概述MVVM概述为什么Vue Vue没有完全遵从MVVM?
MVC和MVVM区别
前述
首先,两者都只是一个想法,一个设计模式。
很多编程语言都是基于这个思路设计了很多框架,比如Java的Spring MVC,PHP的ThinkPHP,JavaScript的Vue,React,Angular等等。
MVC
概述
1.数据应该呈现在视图上。
定义模板引擎
检索数据
然后将数据呈现到模板引擎中。
2.查看操作控制器
向页面上的按钮添加click事件。
在事件中调用方法。
控制器发送修改数据的请求。
3.通过方法发送修改数据的网络请求。
然后发送网络请求以获得修改的数据。
然后将数据呈现给视图。
优缺点
优势:
减少耦合,方便代码维护和扩展。
缺点:
每次数据更新后都需要操作dom,影响开发效率;
MVVM
概述
序
为了提高开发效率,一个新的想法出现了:MVVM。其最大的特点:双向数据绑定;
当M中的数据发生变化时,V中的数据也会自动发生变化。当V中的数据改变时,M中的数据也会自动改变。
MVVM是MVC的改进,也是MVC的替代品。
特点:
当M变化时,V会自动变化。当V改变时,M会自动改变
关系:
一旦M发生变化,VM会检测到M的变化,会自动修改v。
一旦V发生变化,VM就会检测到V的变化,自动修改m。
有了MVVH,所有的dom操作都由vm来操作,减少了程序员的工作量,程序员可以把大量的时间花在业务逻辑上,而不是dom操作上。
MVVM实现者 — Vue
Vue为什么没有完全遵守MVVM?
原文引用来自Vue官网作者自述,但作者没有给出原因。根据复习和自我整理,我认为有两个原因。
理由一:mvvm指的是“模型-视图-视图模型”,应该是用来将‘模型’和‘视图’完全解耦的,但是vue: ref中提供了一个属性,通过这个属性可以获取dom对象,直接操作视图。在这一点上,它违反了mvvm
第二,如下图所示,在结构上,“数据层”包含在“数据模型层”中,这两部分并不是完全独立的。
以上是web面试MVC和MVVM的区别,以及Vue为什么不完全符合MVVM回答的详细内容。更多关于MVC和MVVM的信息,请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。