[前端面经]2025第一场简短的前端面试与复盘

461 阅读3分钟

1.关于vue2.0和vue3.0的不同是什么?本质区别?
我的回答:
1.对比Options API有了Composition API更加灵活
2.diff算法改进
3.监听数据变化的方式改变:从objec.defineProperty变成使用proxy代理对象进行监听,避免了前者的数组长度或者通过下标增加内容、属性新增删除不能监听得到的那些缺陷。并提到了关于前者是进入组件渲染就需要进行递归遍历性能不如后者在对对象监听上,使用属性才进行递归遍历。
面试官似乎想要的回答:
响应式的重构,重点应该是响应式,并追问了什么是响应式?
我的回答:
数据变化,用到数据的视图要一起更新(数据驱动视图,没有回答无需操作dom)
2.关于为什么项目需要安装node环境,浏览器不是也能访问(运行)
我的回答:
1.项目本地运行进行开发肯定需要,依赖都需要经过npm下载安装,本地访问也需要启动服务器,不安装node环境,怎么访问,浏览器访问的话,生产环境也是需要具体的地址,也是有服务器运行的。
2.我感觉面试官不太满意,就表达了没get到这个问题的意图,我没被这么问过,到底是想要问什么?
面试官的回答:
跳过,问了下一个问题
3.组件怎么通讯?props是怎么实现的?
我的回答:
一般子组件使用props接受父组件的传值,子组件使用emit去通知父组件改值;props的实现具体源码没有认真看,稍微记得是挂载到组件什么属性,然后通过实例就能获取到props属性
面试官的追问:
没有研究props为啥能进行通信?源码怎么写的,具体通过什么?
我的回答:
没有,平时偷懒,业务开发偏多,没有什么深度和复杂度,只管使用,没有因为遇到使用出问题而要去研究原理。感觉是真的在公司做到复杂业务和设计,遇到难以解决的问题才会主动看原理去寻求答案。
面试官的回复:
想要考察平时会不会思考实现的原理,因为岗位开发需求复杂度很高,如果不知道props的实现原理,组件通讯可能会写出问题。

总结:
1.针对第二个问题,我回去的路上想了想,感觉面试官想问的重点应该是:浏览器不认识vue项目中的vue文件、ts、less等,需要构建工具webpack\vite编译和打包,而它们都需要依赖node环境。 2.比较深的感触就是现在的前端环境,确实不能只停留在业务层面,还需要理解前端框架的设计。就目前自己的状态,仅仅靠公司业务的项目,还是远远不够的,又是学到的一天。努力接洽更多框架设计原理!!!
tips:
欢迎技术钻研者们给我这个菜鸡留下面试问题的解答和看法!