腾讯一面(腾讯云)2026/4/7(已挂)
腾讯一面(腾讯云)2026/4/7
1、React Native 跨端改造遇到的问题(核心问)
- 你负责 RN 改造哪些模块?任务列表、订阅购买、任务展示、用户中心等通用业务。
- 跨端模块怎么划分? 三层架构:公共层:业务逻辑、Hooks、工具、请求(70% 复用)适配层:端差异集中聚合(支付、通知、安全区、原生能力)业务层:只调用统一接口,不写零散 Platform 判断
- 为什么不直接在业务里写 Platform?避免到处判断、难维护、易出 bug;所有差异集中收口,统一维护。
- 是别人给方案还是你自己设计?leader 给方向,我自己做模块拆分、差异收敛、目录规划,按 “高复用 + 低耦合” 落地。
2、国际化 i18n(问得非常细)
- 方案:
i18next + react-i18next,跨端 RN+Web 一套配置。 - **语言包大怎么优化?**动态加载,只加载当前语言,不一次性全引。
- 动态加载语法?和普通 import 区别?
import('./locales/xxx.json')异步加载;普通 import:编译时打包进主包;动态 import:运行时加载、拆 chunk、按需加载。 - React 动态加载?
React.lazy(() => import())+Suspense组件懒加载。
3、uni-app 小程序分包 & 性能优化(高频)
- 为什么做分包? 小程序主包 ≤2M,防止超标;提升首屏速度,按需加载。
- 分包放什么? 主包:入口、全局配置、工具、公共组件、基础依赖(控制 1M 内)子包:个人中心、列表、详情、低频功能(按业务拆)
- 分包加载体验优化? 预加载子包、轻量 loading、控制单包大小、公共抽离、重试机制。
- 公共组件怎么抽离 & 维护? 统一放
components/common,2 个页面以上用到就抽离;统一 props、样式隔离、Git 规范、Review 机制。 - 多人协作改公共组件怎么办? 规范先行 + 分支隔离 + MR 审核 + 版本兼容 + 文档 Demo,避免乱改。
- 静态资源 / 图片 / CDN 怎么做? 小图本地压缩 / WebP;大图 / 封面全部上传 CDN;统一封装
getImageUrl,拼接 CDN 前缀,目录结构与 CDN 一一映射。 - 渲染优化? 懒加载、长列表分页、减少 setData、合理 key、v-show/v-if、清除监听。
- 打包 & 缓存优化? 分包缓存、vendor 公共包、资源 hash 强缓存、主包稳定少改。
- Web 端对应分包思想? 路由懒加载、代码分割、preload/prefetch,和小程序分包思路一致。
4、WebSocket 实时通信(问得很深)
- **连接保持怎么做?**心跳保活(ping/pong)、断线重连(指数退避)、单例、页面销毁清理。
- **哪些情况会重连?**网络切换、空闲被防火墙踢、服务重启、弱网、切后台、被踢下线。
- **如何监听是否存活?**定时发 ping,超时无 pong 判定假死,主动重连;同时监听 onclose/onerror。
5、Vue / React 对比
- Vue:上手快、模板友好、中小项目 / 小程序 / H5 效率高。
- React:灵活、 Hooks 复用强、跨端 RN、大型复杂项目强。
6、Git 协作:Merge vs Rebase
- 个人 feature 同步:rebase 历史干净。
- 合入公共分支:merge 安全不篡改历史。
- 冲突:本地解决、沟通、自测、再提交。
7、cdn如何做的如何去处理静态资源的
在项目中我会把打包后的静态资源上传到 CDN,并通过 Vite 的 base 配置指向 CDN 域名。
同时给 JS/CSS 文件加 hash,并设置长期缓存(max-age 一年),这样可以提高缓存命中率。
在版本更新时,我会通过文件 hash 或 CDN 刷新机制避免缓存问题。
对于第三方库,我会使用 jsDelivr CDN,并在打包时通过 externals 排除,减少包体积。
同时结合图片 CDN 做压缩和格式优化,整体提升首屏加载速度。
8、代码题
题目:Promise 并发限制,同时执行不超过 limit 个,结果顺序不变你现场写的思路完全正确:
- 结果数组按索引存 → 保证顺序
- 初始启动 limit 个
- 任务完成 → runTask 继续下一个
- 计数器判断全部完成
9、开放题
- 前端规划:基础 → 工程化 / 跨端 → 架构 / 全栈
- AI 代码工具:优点:提效、样板代码、查问题、快速学习缺点:需校验、不懂业务、不能替代架构思考