Vue?试题
框架部分我们会涉及?些?频且有?定探讨价值的?试题,我们不会涉及?些?常初级的在官??档就能查看的纯记忆性质的?试题,?如:vue常?的修饰符?vue-cli?程常?的npm命令有哪些?vue中keep-alive组件的作???先,上述类型的?试题在?档中可查,没有?官??档更权威的答案了,其次这种问题没有太?价值,除了考察候选?的记忆?,最后,这种?试题只要?过vue的都知道,没有必要占?我们的篇幅.我们的问题并不多,但是难度可能会??些,如果你真的搞懂了这些问题,在绝?多数情况下会有举?反三的效果,可以说基本能拿下Vue相关的所有重要知识点了.
Q1.你对MVVM的理解?MVVM是什么?
MVVM模式,顾名思义即Model-View-ViewModel模式。它萌芽于年微软推出的基于Windows的?户界?框架WPF,前端最早的MVVM框架knockout在年发布。Model层:对应数据层的域模型,它主要做域模型的同步。通过Ajax/fetch等API完成客户端和服务端业务Model的同步。在层间关系?,它主要?于抽象出ViewModel中视图的Model。View层:作为视图模板存在,在MVVM?,整个View是?个动态模板。除了定义结构、布局外,它展示的是ViewModel层的数据和状态。View层不负责处理状态,View层做的是数据绑定的声明、指令的声明、事件绑定的声明。ViewModel层:把View需要的层数据暴露,并对View层的数据绑定声明、指令声明、事件绑定声明负责,也就是处理View层的具体业务逻辑。ViewModel底层会做好绑定属性的监听。当ViewModel中数据变化,View层会得到更新;?当View中声明了数据的双向绑定(通常是表单元素),框架也会监听View层(表单)值的变化。?旦值变化,View层绑定的ViewModel中的数据也会得到?动更新。
MVVM的优缺点?
优点:
1.分离视图(View)和模型(Model),降低代码耦合,提?视图或者逻辑的重?性:?如视图(View)可以独?于Model变化和修改,?个ViewModel可以绑定不同的"View"上,当View变化的时候Model不可以不变,当Model变化的时候View也可以不变。你可以把?些视图逻辑放在?个ViewModel??,让很多view重?这段视图逻辑
2.提?可测试性:ViewModel的存在可以帮助开发者更好地编写测试代码
.?动更新dom:利?双向绑定,数据更新后视图?动更新,让开发者从繁琐的?动dom中解放
缺点:
1.Bug很难被调试:因为使?双向绑定的模式,当你看到界?异常了,有可能是你View的代码有Bug,也可能是Model的代码有问题。数据绑定使得?个位置的Bug被快速传递到别的位置,要定位原始出问题的地?就变得不那么容易了。另外,数据绑定的声明是指令式地写在View的模版当中的,这些内容是没办法去打断点debug的
2.?个?的模块中model也会很?,虽然使??便了也很容易保证了数据的?致性,当时?期持有,不释放内存就造成了花费更多的内存
.对于?型的图形应?程序,视图状态较多,ViewModel的构建和维护的成本都会?较?
Q2.你对Vue?命周期的理解?
?命周期是什么Vue实例有?个完整的?命周期,也就是从开始创建、初始化数据、编译模版、挂载Dom-渲染、更新-渲染、卸载等?系列过程,我们称这是Vue的?命周期。
各个?命周期的作?
?命周期示意图
Q.异步请求适合在哪个?命周期调??
官?实例的异步请求是在mounted?命周期中调?的,?实际上也可以在created?命周期中调?。
Q4.Vue组件如何通信?
Vue组件通信的?法如下:props/$emit+v-on:通过props将数据?上?下传递,?通过$emit和v-on来向上传递信息。EventBus:通过EventBus进?信息的发布与订阅vuex:是全局数据管理库,可以通过vuex管理全局的数据流$attrs/$listeners:Vue2.4中加?的$attrs/$listeners可以进?跨级的组件通信
provide/inject:以允许?个祖先组件向其所有?孙后代注??个依赖,不论组件层次有多深,并在起上下游关系成?的时间?始终?效,这成为了跨组件通信的基础还有?些?solt插槽或者ref实例进?通信的,使?场景过于有限就不赘述了。
Q5.