面经

2019-10-21  本文已影响0人  E1FANG

面试官开场:简单介绍以下你自己,还有你的项目
遂把简历背了一遍
可能着急招人,没怎么问原声js,只问vue,要进来就能干活的

1.说一说vue数据双向绑定原理
A:把一个JavaScript对象当左数据传入vue实例当做data时,vue会遍历这个对象的所有属性,通过object.definePropety将这些属性转换成getter和setter。由于js的限制,vue无法直接检测到对象的增加或删除,所以vue初始实例后,是不支持根级别的属性的动态添加,但是有两个方法可以实现,Vue.set 和 vm.$set

2.说一说生命周期
A:beforeCreate,created,beforeMount,mounted,beforeUpdate,update,beforeDestory,destoryed. 背了一遍

3.什么时候可以操作DOM树
A:mounted

4.computed 你知道吗
A:计算属性。 然后不知道说什么,就说了一些平时用到computed的场景

5.watch知道吗,跟computed的区别是什么
A:监听。computed有缓存,而watch没有

6.key有什么作用
A:(不太清楚,懵了)在v-for li的时候会用到key,可以给循环渲染出来的li添加一个用于识别的值,一般我会用index或者id
正确答案:key官方文档key 的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。使用 key,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。1.完整地触发组件的生命周期钩子 2.触发过渡

7.v-for和v-if能不能一起使用,为什么
A:不能,遇到过 但是不清楚原理
正确答案:v-for比v-if优先,如果每一次都需要遍历整个数组,将会影响速度,尤其是当之需要渲染很小一部分的时候。

8.组件怎么注册
A:先import,然后在conponents里面写

9.路由有哪些跳转方式
A:我用的比较多的是push,replace还有go
正确答案:router-link,this.$router.push() (函数里面调用),this.$router.replace() (函数里面调用), this.$router.go(n) ()

10.路由有哪些钩子
A:路由钩子我不太清除,但是我用过全局导航守卫,就是router.beforeEach(),里面传入一个回调函数,这个函数有三个参数,分别是to,指即将要到的路由,from,当前从这个页面跳转的路由,next,一个方法,可以用来设置跳到别的路由,或者报错
正确答案:路由钩子及其使用场景

11.用过vuex吗,说说他的几个属性
A:用过,vuex是vue的状态管理模式,

上一篇 下一篇

猜你喜欢

热点阅读