面试时是hr+技术一起;
开场自我介绍,我介绍了自己工作中三点突出成绩,和在校两个突出项目。
-
包管理器?
npm + yarn + pnpm,我用pnpm+monorepo(这里monorepo的概念介绍有误,他并不是新兴的概念,也不是跟pnpm捆绑)
-
-你提到了monorepo,如果我有3个独立的包要发布,他们相辅相成,如何用monorepo发布?
向上包一层,将三个包都放在同一文件夹下,然后创建packages文件夹,为三个包分别创建子文件夹,然后在最外层的workSpace里分配公共依赖和脚本。monorepo的好处是统一管理依赖版本,还能共享代码和资源。
-
yarn如何monorepo?
不会。Yarn 提供了一个名为 Yarn Workspaces 的功能
-
你在项目中如何重构的?
抽离+复用(这里回答重构遵守的准则,我没答全)
-
重构的规模如何?
重构前是3-4W代码量,重构后用TS+Less全覆盖
-
webpack会的怎么样?
CSS工程化4点,alias别名配置
-
你刚才提到了polyfill,那么你知道xxx(貌似是polyfill的api)???
不会
-
你这个项目用unocss,是怎么做技术选型的,如果是beta也上?
优先考虑团队技术栈,但我当时的确是为了自己学习而没有管太多
-
unocss和tailwind的区别?
-
electron线程数据通信与数据持久化?
直接自定义事件,外层调用即可;数据持久化问的是react状态管理器,使用zustand(面试官说越简单越容易错,这也是为什么redux单向数据流依然用最多)
-
redux在爷孙组件中,如何在孙子组件拿到数据?
答错了,应该直接this.states
-
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… -
Stable Diffusion如何做prompt优化?
GPT和智造喵