第5期 · 腾讯IEG品牌团队UI一面
腾讯 IEG品牌团队 UI开发 一面 4.1 16:00-17:20
注意
- 回答问题不要太发散,说了太多废话,应该专注于问题核心
项目与八股
为什么选 Element UI
基础框架组件:
el-menu/el-menu-item(顶部导航切模块),el-avatar(用户区)登录表单与校验:
el-form/el-form-item/el-input(账号密码+校验),v-loading(登录加载态)全局交互反馈:
this.$message(成功/失败提示),this.$confirm(退出确认弹窗)业务面板里的常用组件:
el-collapse(图层/专题折叠面板),el-slider(时间滑块),el-checkbox(开关类),el-tooltip/tag/empty(提示、标签、空态)主要用它做表单、导航、弹窗提示和一些面板交互,
Element UI在Vue2生态里成熟稳定、资料多、上手快,能把通用交互快速落地,把主要精力放在Mapbox+GeoServer的GIS业务实现上,Ant Design Vue也很好,但当时切换成本更高、收益不明显
父子组件的生命周期

git merge 和 git rebase 的区别
| 对比点 | merge |
rebase |
|---|---|---|
| 本质 | 合并分支 | 变基(移动提交) |
| 历史记录 | 保留分叉 | 线性历史 |
是否产生新 commit |
会(merge commit) |
不一定 |
| 可读性 | 一般 | 更清晰 |
| 冲突处理 | 一次性 | 可能多次 |
| 是否改写历史 | 否 | 是(危险) |
| 适用场景 | 团队协作 | 个人分支整理 |
Webpack 和 Vite 中的 HMR 热更新
| 对比点 | Webpack HMR |
Vite HMR |
|---|---|---|
| 启动方式 | 打包后启动 | 原生 ESM |
| 构建速度 | 慢 | 极快 |
| 更新机制 | 整体重新打包模块 | 按需更新模块 |
| 底层原理 | bundle + websocket |
浏览器 ESM + websocket |
| 热更新粒度 | 较粗 | 非常细 |
| 开发体验 | 一般 | 很流畅 |
Webpack:先打包再更新Vite:按需加载,直接替换模块HMR= 文件变更 → 重新编译 → 通知浏览器 → 拉取新模块 → 局部替换- 监听文件变化
- 重新编译(内存中)
- 通知浏览器(
WebSocket)WebSocket是一种基于TCP的网络协议,专为实现实时双向通信而设计。它允许客户端和服务器之间建立一个持久连接,从而实现数据的高效传输
- 通知浏览器(
- 浏览器获取更新信息(
hash)
- 浏览器获取更新信息(
- 拉取更新模块(
json+js)
- 拉取更新模块(
- 模块热替换(不刷新页面)
场景题
- 开发一套智能课程管理
agent,从前后端到模型选择
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Fuya0's Blog!





