本文整理了高频出现的Vu相关面试题并且附带详解答案难度分为简单、中等、困难三种类型,大家可以先不看答案自测一下自己的Vu水平,如果对答案有不一样见解的同学欢迎评论区补充讨论。
简单
1MVC和MVVM区别
MVC
MVC全名是ModlViwControllr,是模型(modl)-视图(viw)-控制器(controllr)的缩写,一种软件设计典范
Modl(模型):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据Viw(视图):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的Controllr(控制器):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据
MVC的思想:一句话描述就是Controllr负责将Modl的数据用Viw显示出来,换句话说就是在Controllr里面把Modl的数据赋值给Viw。
MVVM
MVVM新增了VM类
ViwModl层:做了两件事达到了数据的双向绑定一是将转化成,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将转化成,即将所看到的页面转化成后端的数据。实现的方式是:DOM事件监听。
MVVM与MVC最大的区别就是:它实现了Viw和Modl的自动同步,也就是当Modl的属性改变时,我们不用再自己手动操作Dom元素,来改变Viw的显示,而是改变属性后该属性对应Viw层显示会自动改变(对应Vu数据驱动的思想)
整体看来,MVVM比MVC精简很多,不仅简化了业务与界面的依赖,还解决了数据频繁更新的问题,不用再用选择器操作DOM元素。因为在MVVM中,Viw不知道Modl的存在,Modl和ViwModl也观察不到Viw,这种低耦合模式提高代码的可重用性
注意:Vu并没有完全遵循MVVM的思想这一点