【面试】用图科技一面

367 阅读2分钟

面试时是hr+技术一起;

开场自我介绍,我介绍了自己工作中三点突出成绩,和在校两个突出项目。

  1. 包管理器?

    npm + yarn + pnpm,我用pnpm+monorepo(这里monorepo的概念介绍有误,他并不是新兴的概念,也不是跟pnpm捆绑)

  2. -你提到了monorepo,如果我有3个独立的包要发布,他们相辅相成,如何用monorepo发布?

    向上包一层,将三个包都放在同一文件夹下,然后创建packages文件夹,为三个包分别创建子文件夹,然后在最外层的workSpace里分配公共依赖和脚本。monorepo的好处是统一管理依赖版本,还能共享代码和资源。

  3. yarn如何monorepo?

    不会。Yarn 提供了一个名为 Yarn Workspaces 的功能

  4. 你在项目中如何重构的?

    抽离+复用(这里回答重构遵守的准则,我没答全)

  5. 重构的规模如何?

    重构前是3-4W代码量,重构后用TS+Less全覆盖

  6. webpack会的怎么样?

    CSS工程化4点,alias别名配置

  7. 你刚才提到了polyfill,那么你知道xxx(貌似是polyfill的api)???

    不会

  8. 你这个项目用unocss,是怎么做技术选型的,如果是beta也上?

    优先考虑团队技术栈,但我当时的确是为了自己学习而没有管太多

  9. unocss和tailwind的区别?

    image.png

  10. electron线程数据通信与数据持久化?

    直接自定义事件,外层调用即可;数据持久化问的是react状态管理器,使用zustand(面试官说越简单越容易错,这也是为什么redux单向数据流依然用最多)

  11. redux在爷孙组件中,如何在孙子组件拿到数据?

    答错了,应该直接this.states

  12. hooks为什么要按顺序执行?

    其实就是问不能写在哪里,为什么不能写,我居然忘记了。。。

    不能写在代码块当中比如for循环和if判断语句里,只能写在组件顶层。原因是react内部为了保证hooks的顺序执行,是一种环状的链式存储,当我们在for循环或者if中去调用hooks时,将破坏这个链式存储,而导致hooks无法保证按顺序执行。

    其实这里虽然没听懂题目,但是可以把会的先讲。比如知道react是render+commit,其中得到fiber树是在render的reconcile阶段,且在render阶段会执行的hooks有:useState、useCallback、useMemo、useRef、useReducer 然后commit分为三个阶段(beforeMutation、mutation、layout)而我们的useEffect就是在mutation中执行的 juejin.cn/post/726051…

  13. Stable Diffusion如何做prompt优化?

    GPT和智造喵