Appearance
WXG 面经
微信公众号部门
目录
个人介绍
三个项目,聊其中一个
聊第一个项目(markdown editor)
(项目)快捷键是调用 api 吗?
没说清楚,表达出来的感觉像全部基于 CodeMirror 的
浏览器兼容性?浏览器对于快捷键的支持是怎么样的?
开始吟唱
Pnpm / Npm / Yarn 区别
- pnpm 硬链接和符号链接
- 依赖提升
- 防止依赖混乱,幻影依赖
答案
- Pnpm:使用硬链接和符号链接优化存储,防止依赖混乱。
- Npm:传统依赖管理,存在依赖扁平化问题。
- Yarn:快速安装依赖,缓存机制优秀,但依赖树仍可能混乱。
Pnpm 如何解决幻影依赖?
- 软链接
- Pnpm 兼容性有问题
答案
pnpm 建立了一个 store 仓库(node_modules/.pnpm)来存放拍平后的各种依赖,而项目中 node_modules 的依赖,是采用树结构,不会将它们拍平(npm、yarn会拍平,就会产生幻影依赖),然后第三方包借助的子包,通过软链接的方式去链接到 node_modules/.pnpm。
Pnpm7 和 Pnpm8 有什么区别?
- 不太清楚
为什么使用 Vite?Vite 和 Webpack 区别?
- 初始化项目
- 开发体验/打包层面
- 热更新比较快
Vite 如何做的热更新?
和 webpack 热更新类似
esbuild、rollup、swc
- esbuild 将 cjs 转换为 esm(esbuild 原生支持 esm),现代浏览器支持 esm,不做额外处理,都丢给浏览器
二者本质上差不多,什么时候用 rollup 和 esbuild?
- 打包用 rollup、构建和转译用 esbuild
为什么?
- rollup 打包工具,打包出来的内容比较轻量
- esbuild 基于 go,速度非常快
esbuild 这么快,为什么还用 rollup 不用 esbuild 呢?
- esbuild 和 rollup 很多地方是重合的,esbuild 某些功能不支持,作者也没有兴趣去弄
- esbuild 生态不是特别好,插件生态比较差
SWC 是什么?
- vercel 做的对标 babel,在 vite 中用于转译 react
swc 和 babel 对比?
- swc 速度快一些
- swc 基于 rust,babel 基于 js
- vite 默认 babel,需要手动开启 swc
swc 比 babel 快多少?
- babel 需要转译很多,需要多套逻辑代码,比较冗余 (了解一下为什么这么快?)
monorepo 和 multirepo 区别?为什么用 monorepo?
- 不了解,当时只了解 monorepo,pnpm 有 workspace
Git 的 submodule 了解吗?和 monorepo 对比?
- 不了解
CodeMirror 技术选型?monaco-editor?
- CodeMirror 社区生态比较好
使用 CodeMirror 有没有遇到什么问题?
- 说的不太好。特殊插件,额外快捷键
Zustand 在项目中做什么?
- 在组件中存储 toolbar 和 editor
React 生态其他状态管理库还有什么?了解吗?
- Jotai、Redux
- Redux 比较冗余,工作流,方便跟踪数据流程,但是在小项目比较难堪
- Zustand 非常轻量化,生态越来越好,写起来简单,但是大型项目中难以跟踪状态(create、get、set)
- 可能有未知副作用
项目中 Antd 做了什么?
- Antd 主要是用了一些小工具的实现(例如导出 HTML、同步滚动按钮)
Tailwind,了解过 PostCSS?
- 插件...
答案
postcss是css后处理器,可以做一些css语法降级和不同浏览器兼容性适配,以及一些css代码转换(css界的babel),通过插件来增强它的功能。
如何理解 Tailwind 和 Antd 区别?哪个更符合现代编程?
- 大项目不适合 tailwind,但是代码都在 className 中,后续难以维护,代码可读性比较差
Antd 主题定制和 Tailwind 主题定制哪个做得更好?为什么?
- tailwind 更好
输入网址按下回车到完全渲染发生了什么事情?
宏任务和微任务是什么?
- 讲到事件循环和 v8
写过 Nodejs 吗?
- 写过,通常在 Next 里面写
了解过 Turbopack 吗?
- 不太清楚,回去好好了解下
CSR、SSR 和 SSG?
- CSR、SSR 服务端渲染和客户端渲染
- SSG 忘记了(静态站点生成)
答案
- CSR:客户端渲染,首屏加载慢。
- SSR:服务端渲染,首屏加载快,SEO 友好。
- SSG:静态站点生成,适合内容固定场景。
CSR 和 SSR 在同等性能的客户端和服务端下性能一致吗?
- 这里回答的很差,以为要讲同构渲染
不考虑资源瓶颈,如果有多个用户,哪种比较好?
- SSR,服务端缓存
反问?
业务? 部门语言:不会被语言限制(OC、Swift、C++、Python) 建议?算法太拉了