- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
最最全全的的Vue⾯⾯试试题题+详详解解答答案案
最全vue⾯试题+详解答案
1、、MVC和和MVVM区区别别
MVC
MVC全名是ModelViewController,时模型-视图-控制器的缩写,⼀种软件计典范。
Model(模型):是⽤于处理应⽤程序数据逻辑部分。通常模型对象负责在数据库中存取数据。
View(视图):是应⽤程序中处理数据显⽰的本分。通常视图是依据模型数据创建的。
Controller(控制器):是应⽤程序处理⽤户交互的部分。通常控制器负责从视图读取数据,控制⽤户输⼊,并向模型发送数据。
MVC的思想:⼀句话描述就是Controller负责将Model的数据⽤View显⽰出来,换句话说就是在Controller⾥⾯把Model的数据赋值给View。
MVVM
MVVM新增了VM类。
ViewModel层:做了两件事达到了数据的双向绑定,⼀是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页⾯。实
现的⽅式时:数据绑定。⼆是将【视图】转化成【模型】,即将所看到的页⾯转换成后端的数据。实现的⽅式是:DOM事件监听。
MVVM与MVC最⼤的区别就是:实现了View和Model的⾃动同步,也就是当Model的属性改变时,我们不⽤再⼿动操作Dom元素来改变
View的显⽰。⽽是改变属性后该属性对应的View层显⽰会⾃动改变(对应Vue数据驱动的思想)
整体看来,MVVM⽐MVC精简很多,不仅简化了业务与界⾯的依赖,还解决了数据频繁更新的问题,不⽤再⽤选择器操作DOM元素。因为
在MVVM中,View不知道Model的存在,Model和ViewModel也察觉不到View,这种低耦合模式提⾼代码的可重⽤性。
注意:Vue并没有完全遵循MVVM的思想,这⼀点官⽹⾃⼰也有声明。
那么问题来了,为什么官⽅要说Vue没有完全遵循MVVM思想呢?
严格的MVVVM要求View不能和Model直接通信,⽽Vue提供了$refs这个属性,让Model可以直接操作View,违反了这⼀规定,所以是Vue
没有完全遵循MVVM。
2、、为为什什么么data是是⼀⼀个个函函数数
组件的data写成⼀个函数,数据以函数返回值形式定义,这样每复⽤⼀次组件,就会返回⼀分新的data,类似于给每个组件实例创建⼀个私
有的数据空间,让各个组件实例维护各⾃的数据。⽽单纯的写成对象形式,就使得所有组件实例共⽤了⼀份data,就会造成⼀个变了全都会
变的结果。
3、、Vue组组件件通通讯讯有有哪哪些些⽅⽅式式??
1、props和$emit。⽗组件向⼦组件传递数据是通过props传递的,⼦组件传递给⽗组件是通过$emit触发事件来做到的。
2、$parent和$cildren获取单签组件的⽗组件和当前组件的⼦组件。
3、$attrs和$listenersA-B-C。Vue2.4开始提供了$attrs和$listeners来解决这个问题。
4、⽗组件中通过provide来提供变量,然后在⼦组件中通过inject来注⼊变量。(官⽅不推荐在实际业务中适⽤,但是写组件库时很常⽤。
)
5、$refs获取组件实例。
6、envetBus兄弟组件数据传递,这种情况下可以使⽤事件总线的⽅式。
7、vuex状态管理。
4、、Vue的的⽣⽣命命周周期期⽅⽅法法有有哪哪些些??⼀⼀般般在在哪哪⼀⼀步步发发送送请请求求??
beforeCreate在实例初始化之后,数据观测(dataobserve)和event/watcer事件配置之前被调⽤。在当前阶段data、metods、
computed以及watc上的数据和⽅法都不能被访问。
created实例已经创建完成之后被调⽤。在这⼀步,实例已经完成以下的配置:数据观测(dataobserve),属性和⽅法的运
算,watc/event事件回调。这⾥没有$el,如果⾮要想与DOM进⾏交互,可以通过vm.$nextTick来访问DOM。
beforeMount在挂载开始之前被调⽤:相关的render函数⾸次被调⽤。
mounted在挂载完成后发⽣,在当前阶段,真实的Dom挂载完毕,数据完成双向绑定,可以访问到Dom节点。
beforeUpdate数据更新时调⽤,发⽣在虚拟DOM重新渲染和打补丁(patc)之前。可以在这个钩⼦中进⼀步地更改状态,这不会触发附
加
文档评论(0)