常见面试题3.0

87 阅读2分钟

常见面试题3.0

1.vue首页白屏是什么问题引起的?如何解决呢?

vue首页加载过慢,其原因是因为它是一个单页面应用,需要将所有的资源都下载到浏览器解析

1)将公用的JS库通过script标签在index.html进行外部引入减少我们打包出来的js文件,让浏览器并行下载支援文件,提高下载速度

2)在配置路由的时候进行路由的懒加载,在调用该路由时,在加载此路由相对应的js文件加一个loading图或骨架屏,提高用户体验

3)按需加载,加载时添加loading提高用户体验

4)图片懒加载

2.vue中data的属性可以和methods中的方法同名吗?为什么

不可以,vue会把methods和data的东西,全部代理到vue生产对象中,因为执行顺序的问题,methods里面的方法会覆盖掉data里面的,最好不要同名,会产生覆盖,所以最好不要同名

3.vue3和vue2的区别

1)生命周期不同

2)双向绑定原理不同,使用proxy替换object.defineProperty,使用Proxy优势

可直接监听数组类型的数据变化

监听的目标为对象本身,不需要像object.defineProperty一样遍历每个属性,有一定的性能提升

可拦截app.ownKeys.has等13中方法,而object.definePropery不行

直接实现对象属性的新增/删除

3)vue2只有一个根节点,vue3可以有多个

4)新增Composition API更好的逻辑复用和代码组织

5)重构了Virtual DOM

模板编译时的优化,将一些静态节点编译成常量

slot优化,将slot编译为lazy函数,将slot渲染的决定权交予子组件

模板中内联事件的提取并重用

6)vue2传参props $emit vue3 props setup(props,{emit})

7)代码结构调整,更便于Tree shaking,它的体积更小

8)使用Typescript代替flow(静态类型检测工具)

9)v-for比v-if级别高