vue前端面试题整理

vue面试问题

2018-08-17  本文已影响97人  LuckyFBB

1.MVVM模式和MVC模式

    MVVM模式是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model层代码数据模型,也是可以在Model中定义数据修改和操作的业务逻辑;View层代表UI组件,它负责将数据模型转化为UI展示出来,ViewModel是一个同步View和Model的对象。

    在MVVM架构中,View和Model之间没有直接联系,通过ViewModel进行交互,Model和ViewModel之间的交互是双向的,因此View数据变化会同步到Model中,而Model的数据变化也会立即反应到View上。

    ViewModel通过双向数据绑定把View层和Model层连接起来,而View和Model之间的同步工作完全是自动的,无需人为干涉,因开发者只需要关注业务逻辑,不需要手动操作DOM,不需要关注数据状态的同步问题,复杂的数据状态维护完全由MVVM来统一管理。

    主要是MVC中的Controller演变成为MVVM中的ViewModel。MVVM主要解决了MVC中大量的DOM操作使页面渲染性能下降,加载速度变慢,影响用户体验。和当Model频繁变化的时候,开发者需要主动更新到View。

2.双向绑定的原理

    采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter/getter,在数据变动时发布消息给订阅者,触发相应的监听回调。

    具体步骤如下:

        A.需要observe的数据对象进行递归遍历

        B.compile解析模板指令

        C.Watcher订阅者是Observer和Compile之间通信桥梁

        D.MVVM作为数据绑定的入口,整合Observer、Compile和Watcher三者

3.生命周期的理解

    

生命周期的图 简单说明 生命周期钩子

                 Vue----生命周期钩子

4.组件之间的传值交互

    Vue-组件之间的传值

5.axios的了解

    Vue-axios用法详解

6.v-if和v-show指令的区别

    v-show是通过修改元素的display属性让其显示隐藏或者显示

    v-if是销毁或者重建DOM达到让元素显示和隐藏的效果

7.keep-alive的作用

    会缓存不活动的组件实例,主要用于保留组件状态或避免重新渲染。

8.computed、watch、methods之间的区别和各自的应用场景

    computed,watch,methods之间的区别

9.angular双向绑定和vue双向绑定的区别

    angular是通过脏检查实现,angular会将UI事件,请求事件,settimeout这类延迟的对象放入到事件监听的脏队列中,当数据变化的时候,触发$diget方法进行数据的更新,视图的渲染。

    vue通过数据属性的数据劫持和发布订阅模式实现,大致可以理解为三个模块组成,observer完成对数据的劫持,compile完成对模板片段的渲染,watcher作为桥梁链接二者,订阅数据变化及更新视图。

上一篇下一篇

猜你喜欢

热点阅读