一面
日期:2025.11.05
全球第八Web3交易所,一面挂, 反馈很快,说不合适。
问题都回答到位了,失分点只有一个:没写过React。
面试官原话:“整体不错,我们这里对 React 还是强要求的”
0.0无语
一、 问题
聊聊微前端,你们用的是哪一套框架?
你们一个 monorepo 是所有的东西还是在一个大仓库里面,对吧?
你们样式隔离怎么做?
你们的子应用是一个页面暴露一个模块吗?还是说整个子应用暴露出来一个模块?比如一个项目有三个页面 app/a、app/b、app/c,是暴露了一个模块还是三个模块?
正常的 SPA 应用,我在里面内部切页面的时候,是不会再刷新的,状态也是能共享的(比如 Redux)。如果按这种页面切,每次从 a 切到 b 都得去重新加载另外一个模块,这两个页面都没关系了,这种状态怎么共享呢?
你知道乾坤(Qiankun)有一个 window 快照的功能吗?
你了解过像无界(Wujie)这种通过 iframe 来做微前端的吗?它的原理是什么样子的?
它(iframe 方案)是怎么实现比如弹窗(iframe 里面的弹窗弹到全屏上面)的?
我代码怎么写?我在子应用里面写了一个弹窗,怎么能通知给父应用,让父应用去渲染我的弹窗呢?
那就得要求父应用有个弹窗,是吧?如果我 10 个子应用,它们的弹窗样式不一样,那我这个父应用都得有 10 种弹窗,这种开发的耦合太严重了。
讲一下 CSRF 攻击吗?
诶你刚才讲 Token 放在哪里?
OK,那个我们在 cookie 层面能不能做一些防范?
诶,你了解一个那个 CSP (Content Security Policy) 的策略吗?
你们用过 Sentry,可以讲一下前端的异常监控一般要监控哪些东西,以及要怎么去配这个告警?
我想拦截全局的那个接口请求,然后给它加一个 header,我们有什么办法去做这个需求?(补充:没有用 Axios,没有一个集中的地方去发请求,有些请求可能是在 NPM 包里面发的)
可以讲一下那个 UMD 这种模块格式,我们一般什么场景下会用吗?
Webpack 有个 externals 的配置,那这个配置的话,一般我们用来做什么?
那 CDN 上我们引的这个资源,它是什么格式的?
好的,可以讲一下那个 tree shaking 的原理吗?
我们现在发现了那个打包出来的主 JS 体积特别大,我们有哪些方法去分析它?
你刚才提到 Lodash,lodash 和 lodash-es 有什么区别?
看你有搞过组件库,做主题一般怎么实现?
Tailwind CSS,你们在就是整个公司都是用这个的吗?
那你觉得 Tailwind CSS 有什么好处和缺点?
像 HTML 如果很长的话,这些有哪些解决办法?
组件库我们一般一个组件会打出来一个 CSS、一个 JS。正常情况下,我要用 Button 组件,可能要 import Button 再 import Button.css。但是社区上提供的一般我们都不用专门去引这个 CSS,它怎么解决的?
你可以再讲一下,我 import Button 之后他会做什么东西?他是怎么把 JS 和 CSS 都给我引进来的?
React 的话掌握的怎么样?
你们俩用的是那个 Vue 2 还是?
还有其他的...可以讲一下那个 HTTP 301 和 302 的区别吗?
你们有做那个自动化测试,对吧?我有个页面,我现在要做自动化测试,它整个流程是怎么样子的?
你们这个怎么卡点?我举个例子,我项目变更了,页面变更了,我可能经常会忘了改用例,然后就上线了,那导致这个用例经常会出现一种误报,这个你们是怎么解决的?
就是我在构建的时候,它会有一步专门去跑这个自动化测试,是吧?那不会导致我的这个 CI 的时间很长吗?
可以讲一下这个 API requestIdleCallback 吗?
怎么认为浏览器空闲嘞?
可以讲一下那个比如 Yarn、PNPM 和 NPM 的区别吗?
二、反问
我主要是想了解一下业务,因为是交易所,HR 跟我说是交易所,然后大概是写什么?因为我之前看交易所相关的,他可能会要求你有区块链和钱包的经验,那这个好像没有要求。
那我想知道,就是比如说假设我面试通过,那我后续就是在这段时间内我学什么?要不要学一些什么东西?去了解一些什么方向知识,对将来工作会比较有帮助一些?
就是今天的面试对我有没有什么评价和建议?在哪些方面我考虑得或者说答得不够好?
那后面还有其他面试吗?就是如果这个通过的话。