写在前面#
2025年7月31日,离开了待了4年的前公司,打了半个月的杭州麻将(现在是业余6段的选手啦~也就突然空了这么久时间才发现麻将居然有段位),结束了1个多月的面试以后,收到了3个Offer,国庆假期前入职了1个,觉得团队过于草台班子,离开了,现在入职新公司,刚上班没什么任务需求,抽空回顾一下过去的问的频率比较高的问题吧~
PS:面试下来大部分问题是针对项目的,所以可能不太适用,纯个人记录分享~(以下问题的回答仅回忆自己当时的回答,故可能存在不准确或遗漏,建议自行查阅相关问题的准确丰富的解答,以及看看你是否能回答的比我多吧,毕竟比我回答的多的话,一定更厉害)
Vue2 和 Vue3 的区别#
- Vue2 基于Object.defineProperty() 实现数据响应式,Vue3 基于Proxy代理技术实现数据响应式,并且支持嵌套对象自动响应;
- Vue3使用了Composition API,通过setup 函数、ref、reactive等API实现代码复用;
- Vue3支持多个根元素,不用像Vue2一样只能有一个根元素;
- Vue3对TypeScript的支持性更好,大幅减少了类型错误;
- Vue3种的生命周期将Vue2的beforeCreate和created结合在setup中,其他生命周期API则需要结合on来进行调用
PS: 这里面试官或许会问Object.defineProperty()和Proxy代理技术之间的区别,会问具体的差别(鄙人比较菜,没回答出来,不爱看原理)
项目优化都做了哪些#
- 网络层面优化:
- CDN加速,利用如阿里云的CDN服务;
- 优化服务器响应,减少接口请求时间
- 资源层面优化
- 图片资源压缩,使用雪碧图,使用较新的WebP格式
- 使用字体图标等
- 渲染层面优化
- 服务端渲染(采用成熟的Nuxt.js 或 Next.js)
- 减少DOM层级,
- 使用骨架屏或加载提示等方式提升用户体验
- 构建层面优化
- 利用构建工具的资源分析,减少打包体积
- 做代码分割,如提取公共依赖
PS:这里面试官或许会问一些具体的优化方式有没有案例,以及项目中具体做了哪些
注意到有做考试相关的需求,对于大量题目数据是如何做的渲染,以及提交 / 中途退出的状态怎么做的管理#
坦白来讲,目前的业务实际数据,单场考试下题目数量最多大概30左右,不算严格意义上的大数据量,且实际业务场景下是只渲染了一道题目,再有下一道这种,代码实现时只对于索引或ID做了记录
你认为做的优秀的点和突破,过去几年有没有碰到什么难题以及如何解决的#
好吧,这是一个开放性的问题,我当时的回答主要是结合项目需求的一个具体迭代(播放器相关的业务插件)
PS:这里没有很好的答案,建议自行找出个人过往项目中印象深刻的需求,或者排查解决时间较久的问题,自己梳理总结一下,一定会在以后面试中用到,没用到也没关系,好记性不如烂笔头,就当记录吧,就像我现在这样~
写在结尾#
2025年10月14日记录~开始新的工作啦…