百度前端一面(已通过)
1、我看你有写vue3的源码,我们聊一聊vue3的源码吧
1.1 ref和reactive区别,vue团队为什么要这么设计?
1.2 源码使用了reflect,为什么要这么使用?
1.3 他是如何跟踪数据的?为什么要用weakMap?
1.4 你是如何区别不同的虚拟dom(文本,fragment,自定义组件)?
1.5 你说一下diff算法?
1.6 diff算法你说到了最长公共子序列这个算法,怎么实现呢,说一说思路?
1.7 那对于新增的虚拟dom你是怎么实现插入的(换句话说你是怎么记录dom位置的,代码怎么知道我就要插入这个地方)?
2、我们聊聊css部分
2.1 你如何使用rem这个单位的,它是什么含义
2.2 link和import的区别
2.3 看到你有写拆分css,为什么要这么做,一个css不好吗?
2.4 你说到首屏渲染加速,拆分css,那么这个东西是绝对的吗,你拆了css,就多了一个http请求,所以你得均衡考虑,鱼和熊掌不可兼得
2.5 cdn工作原理,为什么要把静态资源放在cdn里面?
3、聊聊项目
3.1 讲一讲你实习做的这个项目(从产品定位,产品需求,功能模块三个部分,能说多少说多少)
3.2 你做的是哪一部分
3.3 rpc通信具体实现的方案?
3.4 现在给你一个场景,后端返回一堆数据,你可能要弹出多个弹窗,但是页面只有一个弹窗,只是我点击弹窗之后下一步操作弹出另一个弹窗,如何做到丝滑操作,不会有弹窗开和关的那种停顿感,如果能有封装的逻辑就更好了。
3.5 说一说你遇到的难点,如何解决的
4、代码题
1、将一维数组变为二维数组(基本没难度)
2、全排列(递归,套路题)
反问