vue面试题总结

有时间整理一下面试时遇到关于vue的面试题

1.vue的生命周期(ps:每个面试官上来都会问的一个问题 哈哈  不过你不能只说出8各阶段 ,还要说出每个阶段他们发生的变化,做了什么操作 。这才是面试官想听到的答案)

     beforeCreate (创建前) el 和data还没有被初始化 ,所以无法访问methods, data, computed等上的方法和数据

    created (创建后)实例已完成以下配置:数据观测、属性和方法的运算,watch/event事件回调,完成了data 数据的初始化,el没有

    beforeMount (挂在前) 完成了el和data 初始化,注意此时还没有挂在html到页面上

    mounted (挂载后)模板中的HTML渲染到HTML页面中

    beforeUpdate(更新前) data数据已经发生变化,但页面还没有被渲染

    updated (更新后) 页面发生数据变化

    beforeDestrioy(销毁前)   还可以用this来获取实例,一般在这一步做一些重置的操作,比如清除掉组件中的定时器 和 监听的dom事件

    destrioyed (销毁后)  所以的事件监听器会被移出,所有的子实例也会被销毁,该钩子在服务器端渲染期间不被调用  

2.vuex用过吗?由哪几部分组成?各部分怎么用的 详细说一下

3.vuex存储的数据一刷新就回没有,你是如何解决的?

4.vue-router的导航钩子有哪几种?

5.组件之间的传值实现方式?

6.vue项目首页加载过慢如何解决?

7.vue中为什么data是一个函数而不是一个对象?

      这个问题面试官主要考的一个点是:引用数据类型的了解。object是引用数据类型,如果不用function返回,当共用一个组件的时候,某一个引用组件数据改变时,另一个引用组件也会随之改变,这不是我们期望发生的,所以用函数的形式定义这样每复用一次组件,就回返回新的data,类似于每个组件创建一个私有的数据空间,让各个组件实例维护各自的数据。

8.vue项目中有没有遇到过更改数据后,页面没有更改的问题?如何解决的?

      一般出现这种问题的现象是 给某一个对象添加属性或者删除  。受JavaScript 的限制,Vue 不能检测到对象的属性添加以及删除。解决方案:1我们可以用Vue.set(object, key, value) 来解决 2.还可以使用 vm.$set 实例方法,它只是全局 Vue.set 的别名

9.项目中如何解决跨域问题的?

10.vue项目中使用keep-alive的作用?

     keep-alive 是 Vue 内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。一般的应用场景是:在vue项目中,搜索结果列表页面,点击某个结果之后,返回回来时,如果不对结果页面进行缓存,那么返回列表页面的时候会回到初始状态,但是我们想要的结果是返回时这个页面还是之前搜索的结果列表,这时候就需要用到vue的keep-alive技术了.

11.vue中v-for中的key的作用?

     vue组件高度复用增加Key可以标识组件的唯一性,为了更好地区别各个组件 key的作用主要是为了高效的更新虚拟DOM

12.vue computed , watch 和 methods的区别?

13.vue实现局部刷新组件的方法?

14.vue双向数据绑定的原理?

15.你在项目中遇到最难解决的问题是什么,最后怎么解决的?(ps:看个人情况)

原文地址:https://www.cnblogs.com/xiebeibei/p/12195782.html