求职刷题神器

funit.cn

讨论区 > 求职面经 > 上海野火网络前端研发面经复盘

上海野火网络前端研发面经复盘

万禾炊烟
发布于2021-03-24 15:55:59 29浏览

面试题(一面)

  1. 为什么转行?8
  2. 重绘和回流?9 ✔
  3. 3D动画?5
  4. vue-router 路由守卫?全局、单个组件。8 ✔
  5. 闭包?7 ✔
  6. JS线程?宏任务、微任务。8 ✔
  7. v-for和v-if哪个优先级高?6 ✔
  8. 兄弟组件间通信,使用$emit最简单的方法?5 ✔
  9. 有没有自己实现一个简单的 vue? 6 ✔
  10. 是否有关注 vue 的最新动态?

问题2 重绘和回流

回流(重排)

layout布局 > layer分层 > Paint(sheet) >> tiles >> raster >> draw quad >> display

更新元素的几何属性,如改变宽高、位置等,浏览器会触发重新计算布局,排列元素。


改变元素位置、尺寸、字体大小

改变浏览器窗口

DOM操作,DOM元素的添加、删除,DOM元素属性的获取和修改


大量、频繁的重绘,会对性能造成影响。应对措施如下:


多个节点的添加,使用fragment包裹一次性添加

多个样式的切换,使用切换class类名的方式

避免频繁读取会引起重排的属性和方法,主要是宽高、位置等布局类的,如offsetWidth、offsetHeight、getComputedStyle()等

将可能重绘的元素,使用absolute或fixed脱离文档流,较少重排影响的范围

优化动画,canvas、CSS3 transform3D、WebGL,启用GPU硬件加速。


关于DOM操作这块,浏览器自身也做了很多优化,比如将多次回流重绘合到一起。

重绘

元素的外观发生变化,但是没有改变布局。如color、border-style、visibility、background等。

直接进入重新绘制阶段,执行效率比重排高。

Paint(sheet) >> tiles >> raster >> draw quad >> display

问题4 路由守卫

全局守卫


全局前置守卫。router.beforeEach

全局解析守卫。router.beforeResolve。调用时机(不同于beforeEach):导航被确认之前,所有组件内守卫和异步路由组件被解析之后。

全局后置守卫。router.afterEach。


路由守卫(独享)

在路由配置文件定义beforeEnter。

组件内守卫


beforeRouteEnter。渲染该组件的对应路由被confirm前调用,不能获取组件示例this(还没创建)。

beforeRouteUpdate。调用时机:foo/1与foo/2之间跳转时,复用当前组件实例,

beforeRouteLeave。


面试题(二面)

  1. 为什么转行?
  2. 目前在公司负责什么项目?在团队中扮演什么角色?
  3. 是否有做过 h5 小游戏?
  4. 你最看重团队的哪些方面?
  5. 你觉当刚才面试你人的水平如何?是否能对你的技术成长有帮助?
  6. 是否能接受加班?「我们不996,但是项目排期紧的时候,需要你每天都到公司。不忙的时候可以申请调休,但不能连续休好几天 /(ㄒoㄒ)/」
  7. 什么时候能入职?

总结:二面算是终面了,hr发OA的时候我拒绝了,没啥理由不想去。再面一下吧最近一直感觉良好,迷之自信...

本文首次发布于趣IT ,转载请注明出处,谢谢合作

上海野火网络前端研发面经复盘

全部评论0

成为第一个评论的人

还可以上传7

表情
热帖排行
热门话题
  1. 518人参与
  2. 240人参与
  3. 153人参与
  4. 96人参与
  5. 25人参与
  • 微信扫码加好友进群