# 1. qiankun 在基于 single-spa 的微前端框架的工程边界与现代应用 A qiankun 在 single-spa 生命周期模型上补充 HTML Entry、沙箱与样式隔离,主打存量系统低改造成本接入 ✓ 正确答案 B qiankun 不依赖 single-spa,是独立框架 C qiankun 的 HTML Entry 是构建期静态解析的 D qiankun 只能用于同技术栈应用
# 2. micro-app(京东)在 Web Components 基础的微前端工程实践 A micro-app 以自定义元素作为子应用容器,支持元素级 scoped 与 shadow 双模式样式隔离,声明式接入 ✓ 正确答案 B micro-app 要求子应用必须改造为生命周期函数导出 C micro-app 的样式隔离只有 shadow 一种模式 D micro-app 不支持同一子应用多实例挂载
# 3. wujie(无界)在基于 Web Components 的微前端工程应用 A 无界用 iframe 承载 JS 执行、WebComponent 承载 DOM 呈现,规避纯 iframe 的弹窗问题且无代理逃逸面 ✓ 正确答案 B 无界的子应用 UI 直接显示在 iframe 内 C 无界完全消除了 DOM 同步成本 D 无界与 qiankun 的隔离机制完全相同
# 4. garfish(字节跳动)在国产化微前端框架的工程边界 A garfish 不支持按需加载子应用 B garfish 绑定特定前端框架,不支持其他技术栈 C garfish 与 qiankun 的实现细节完全相同 D garfish 以路由驱动 + 模块加载 + 沙箱的模型提供应用治理,特点在插件化与性能导向 ✓ 正确答案
# 5. qiankun 的 import-html-entry 与应用加载流水线 A 严格 CSP 与运行时内联脚本注入天然兼容 B import-html-entry 在构建期静态生成子应用产物 C HTML 中脚本的执行顺序可以任意调整 D import-html-entry 运行时 fetch 并解析远程 HTML,改写成子应用基址后按序注入执行,与构建期联邦模型互补 ✓ 正确答案
# 6. Module Federation 的运行时共享模块与版本协商 A 共享依赖经 share scope 注册,按 requiredVersion 与 singleton 策略协商复用或自载,协商失败会出现双实例故障 ✓ 正确答案 B 共享依赖只要声明了 shared 就必然单例复用 C requiredVersion 写精确版本是最佳实践 D 版本协商是构建期完成的,运行时无决策
# 7. 微前端的拆分策略(按业务域、页面、功能) A 按业务域拆分不需要治理共享逻辑 B 拆分粒度越细一定越好 C 按业务域拆分团队边界最清晰,按页面拆分激活直观,按功能拆分拼装灵活但编排复杂,粒度服从团队边界 ✓ 正确答案 D 页面级拆分适合跨页面强关联场景
# 8. EMP(基于 Module Federation)的工程化扩展 A EMP 在 MF 之上提供共享目录、版本治理与联邦可视化,把联邦机制变成平台级能力 ✓ 正确答案 B EMP 是替代 Module Federation 的独立实现 C EMP 只提供 devtools,无治理能力 D EMP 适合所有规模的组织,无边界
# 9. icestark 与 Garfish 在阿里生态微前端的工程价值 A Garfish 不支持插件化扩展 B icestark 内置完整 JS 沙箱能力 C 两者都依赖特定 UI 框架才能工作 D icestark 走轻量应用管理与路由分发、契合 ice 生态,Garfish 提供完整沙箱与插件化治理,按生态与治理深度选型 ✓ 正确答案
# 10. Module Federation 的 shared 配置,singleton、strictVersion 与 requiredVersion 的版本冲突检测与运行时行为 A requiredVersion 写越精确越能避免协商冲突 B singleton 允许共享依赖多副本共存 C strictVersion 只在非单例场景生效 D requiredVersion 决定版本匹配,singleton 强制单例并降级告警,strictVersion 把版本不匹配升级为加载报错 ✓ 正确答案
# 11. 微前端主子应用路由(基于 single-spa/qiankun/wujie) A 三种框架都以基座路由接管 + 子应用前缀激活协同,差异在子应用路由的自主性(自管/同步/iframe 桥接) ✓ 正确答案 B 子应用路由可以任意使用根路径而不冲突 C history 模式无需前缀约定 D wujie 的子应用没有独立路由能力
# 12. Webpack Module Federation 2.5+ 的新特性 A 2.5+ 的运行时与 1.x 完全兼容,可直接迁移 B 2.5+ 只增加性能优化,无类型与调试能力 C MF 2.5+ 放弃了与 webpack 的兼容 D MF 2.5+ 增强远程模块类型、联邦调试面板与 Vite/Rspack 适配,解决契约与可观测性短板 ✓ 正确答案
# 13. 微前端架构模式涉及的核心数据结构与算法(路由分发、模块加载、状态同步) A 路由匹配只需要前缀比较,无需注册表 B 微前端运行时内核是应用注册表、模块缓存表与状态订阅表,配以规则匹配、加载编排与版本分发算法 ✓ 正确答案 C 模块加载无需缓存与并发控制 D 状态同步全量广播无需版本号与剪裁
# 14. Bit 在组件级别(而非应用级别)的微前端工程价值 A Bit 与应用级微前端解决的是同一个问题 B Bit 以组件为独立版本与发布单元实现跨项目共享,与应用级微前端互补而非替代 ✓ 正确答案 C 组件级共享不需要契约与治理 D Bit 只支持单一框架
# 15. 微前端的路由分发(主应用路由 vs 子应用路由)的工程实践 A 子应用前缀下的未知路径应由主应用路由接管 B 子应用可以自由修改全局路由表 C 主应用管全局结构与激活,子应用管前缀内视图,跨应用跳转经主应用、子应用域内 404 由子应用兜底 ✓ 正确答案 D 路由分发无需处理直接访问 URL 的刷新场景
# 16. 微前端的公共依赖管理(共享 npm 包 vs Module Federation shared) A npm 共享天然保证运行时单例 B 所有公共依赖都应走 MF shared 以节省体积 C 框架类依赖需 MF shared + singleton 保证单例,业务共享宜 npm 版本化 + 契约治理,按运行语义选型 ✓ 正确答案 D 业务组件适合运行时共享实现隐式升级
# 17. 微前端的生命周期挂载(bootstrap、mount、unmount) A 生命周期执行可以不同步,基座无需等待 B bootstrap 在每次激活时都重新执行 C mount 无需幂等,重复调用无害 D bootstrap 初始化一次、mount/unmount 可多次且必须幂等并异步完成,基座按契约串行编排 ✓ 正确答案
# 18. 微前端的应用间通信(CustomEvent、props、状态管理) A 事件通道不需要命名空间治理 B 所有通信都应该走全局状态以保持统一 C 受控交互用 props、全局通知用事件、共享数据用状态层,通信需契约化与生命周期管理 ✓ 正确答案 D 通信订阅无需在卸载时清理
# 19. 微前端的预加载策略(preload、prefetch)的工程性能优化 A 预取无需考虑与首屏资源的带宽竞争 B 预取所有子应用全部资源是最优策略 C 框架级预加载与浏览器级预取会互相替代,只需其一 D 当前应用资源用 preload、下一跳应用入口空闲 prefetch,控制预取体积与并发并用命中率评估策略 ✓ 正确答案
# 20. 微前端在 SSR(子应用独立 SSR)的工程边界与现代实践 A SSR 场景无需关心共享依赖的单例性 B 子应用 SSR 失败会导致整页不可用 C 子应用独立 SSR 需保证水合一致与部分降级,现代实践以边缘 SSR、流式片段输出与联邦协同解决组合时序 ✓ 正确答案 D 流式渲染会拖慢整页 TTFB
# 21. 微前端的全局错误处理与降级(子应用崩溃)的工程策略 A 崩溃降级无需上报与监控 B 子应用崩溃时应整页刷新恢复 C 错误处理按子应用边界、基座全局与兜底页分层,崩溃降级到区域占位并支持重试恢复与防风暴 ✓ 正确答案 D 子应用崩溃率不是核心指标,无需纳入 SLO
# 22. 微前端的版本管理与发布协调(统一发布 vs 独立发布)的工程价值 A 发布模型选择与变更耦合度无关 B 统一发布适合大规模高并发团队 C 独立发布不需要契约测试与组合冒烟 D 独立发布带来节奏自主与风险局部化但需版本矩阵与组合验证,统一发布确定性强但被最慢团队拖累 ✓ 正确答案
# 23. 微前端的 CSS 隔离方案对比,qiankun scoped css、Shadow DOM、CSS-in-JS 与 BEM 命名约定的工程取舍 A CSS-in-JS 可以隔离第三方库的全局样式 B BEM 命名可以彻底消除样式冲突 C Shadow DOM 与 scoped css 的隔离机制相同 D BEM 靠约定、CSS-in-JS 靠构建期作用域、scoped css 靠运行时改写、Shadow DOM 靠浏览器封装,按场景组合使用 ✓ 正确答案
# 24. micro-app 与 Module Federation 在主子应用通信、依赖共享与版本冲突的工程取舍 A micro-app 侧重应用编排与事件通信,MF 侧重运行时依赖共享与版本协商,工程上常组合使用 ✓ 正确答案 B MF 提供应用间通信的标准协议 C micro-app 的共享依赖在运行时自动协商版本 D 两种方案解决完全相同的问题,可互换
# 25. qiankun 的 loadMicroApp 与 registerMicroApps 在微前端按需加载与全量注册的现代工程价值 A registerMicroApps 支持同页多实例 B loadMicroApp 会自动按路由激活子应用 C registerMicroApps 提供路由托管的声明式注册,loadMicroApp 支持无路由的动态按需加载与多实例嵌入 ✓ 正确答案 D 两种 API 能力完全相同,只是写法不同
# 26. 微前端的基座-子应用模式与完全独立模式在团队协作与发布节奏的边界 A 完全独立模式适合需要统一鉴权与导航的场景 B 基座模式统一入口与治理但基座成为公共变更点,完全独立模式无公共依赖但体验一致靠约定,按规模与公共性选择 ✓ 正确答案 C 基座模式中子应用可以自由修改基座 D 两种模式完全互斥,只能固定选一种
# 27. Micro-App 的 html entry 加载模式与 qiankun 的 entry js 模式在首屏速度与现代构建的取舍 A HTML Entry 灵活兼容存量但多一轮解析且资源链式发现,entry JS 与现代构建匹配、加载并行,按存量与性能取舍 ✓ 正确答案 B HTML Entry 的首屏性能一定优于 entry JS C entry JS 模式可以加载任意非构建产物 D 两种模式在现代构建下没有差异
# 28. Module Federation 的 exposes/remotes/shared 三个核心配置在大型分布式应用的工程实践 A remotes 地址可以硬编码进构建配置 B exposes 应该暴露应用的全部内部模块 C exposes 定义提供契约、remotes 定义消费引用、shared 定义共享基线,大型工程以目录化与平台模板治理并前置校验 ✓ 正确答案 D shared 策略由各团队自行决定即可
# 29. 微前端在 Vite/Rspack 模块联邦(Vite 5+ 支持) A Vite 不支持联邦,只能使用 webpack B Vite dev 模式与 build 模式的联邦行为完全一致 C 不同构建器的远程模块无法互操作 D Vite 5+ 经增强插件、Rspack 原生支持联邦,dev 与 build 行为不同,跨构建器依赖统一运行时与契约测试 ✓ 正确答案
# 30. 子应用独立部署 vs 联合发版在大规模团队(数百人)的协作工程边界 A 大规模团队按变更影响面分流:局域变更独立部署、跨域变更联合窗口,并配套契约测试与组合级灰度回滚 ✓ 正确答案 B 数百人团队必须全部联合发版保证一致 C 独立部署不需要契约测试,靠人工协调 D 跨域变更也可以随意独立发布
# 31. 微前端中主子应用的鉴权(JWT、Cookie)传递与 Session 同步策略 A JWT 由基座统一获取经受控通道下发,Cookie 同域自动携带,登录、刷新与登出经统一广播同步 ✓ 正确答案 B 每个子应用应各自实现完整登录流程 C 登出后子应用可继续持有会话凭据 D token 过期时各子应用各自跳转登录页即可
# 32. qiankun 的 import-html-entry 加载远程 HTML 在 CSP 严格部署的边界与现代 webpack/vite 联邦的差异 A HTML Entry 与 JS Entry 的 CSP 行为完全相同 B 严格 CSP 下 qiankun 无需任何调整即可工作 C 联邦的 remoteEntry 也依赖 eval 执行 D import-html-entry 的运行时注入与内联执行和严格 CSP 冲突,联邦的构建产物标准加载天然 CSP 友好 ✓ 正确答案
# 33. 微前端 entry 文件与子应用激活策略在 single-spa / qiankun / micro-app / wujie 之间的工程取舍 A 四种框架的 entry 与激活策略完全相同 B single-spa/qiankun 以生命周期契约 + 路由激活为主,micro-app/wujie 以元素声明 + HTML 加载为主,按接入门槛与控制力取舍 ✓ 正确答案 C micro-app 要求子应用必须暴露生命周期函数 D wujie 不支持路由联动
# 34. 微前端基座(main app)路由变化触发子应用 bootstrap / mount / unmount 的执行模型差异 A wujie 的子应用完全由基座控制渲染时机 B 所有框架都在主线程串行调度全部生命周期 C single-spa 用导航队列串行调度生命周期,qiankun 在其上叠加缓存与手动加载,wujie 以 iframe 自治 + 容器显隐为主 ✓ 正确答案 D 路由变化不会触发生命周期调用
# 35. 基座与子应用独立部署时如何约定接口契约并防止版本漂移 A 契约只需写在文档里,靠开发自觉遵守 B 独立部署下接口契约需版本化并以双向契约测试与兼容矩阵防漂移,breaking 变更走联合窗口 ✓ 正确答案 C 子应用回滚不需要校验与基座的契约兼容 D 契约漂移只能在上线后由用户发现
# 36. 子应用按需加载策略(路由级 / 组件级)在资源预算与首屏体验之间的工程平衡 A 组件级按需加载会增加首屏资源量 B 路由级按需保证不激活不加载,组件级按需精细控制首屏,预加载在空闲期提前获取以平衡切换体验 ✓ 正确答案 C 预加载可以无限制使用以提升体验 D 按需加载策略不需要预算门禁
# 37. 基座与子应用独立 CI / 独立灰度发布的工程范式与回滚策略 A 基座与子应用独立流水线与门禁,灰度按应用/组合/用户分桶,回滚以配置切换与组合快照执行 ✓ 正确答案 B 回滚只能重新构建全部应用 C 灰度不需要按用户分桶,按流量即可 D 回滚无需考虑契约兼容与缓存残留
# 38. 微前端在 SSR / SSG 下的架构约束(子应用预渲染 vs 客户端水合) A SSR 场景下共享依赖可以双实例运行 B SSR 下子应用预渲染需与客户端水合保持状态与依赖一致,SSR 失败可降级为该片段客户端渲染 ✓ 正确答案 C 服务端渲染的状态无需序列化注入页面 D 子应用 SSR 失败会导致整页 500
# 39. Module Federation 中 React 被配置为 singleton、eager、requiredVersion 和 strictVersion 的不同组合时,宿主与远程版本不满足 semver 会分别发生什么 A singleton 配置下版本不满足会直接报错 B 版本不满足时非单例自载、单例降级告警、加 strictVersion 报错,eager 提前注册会改变协商时机 ✓ 正确答案 C eager 只影响加载速度,不影响版本协商 D requiredVersion 越精确越安全
# 40. 远程应用把大型共享依赖设为 eager 后,为什么可能破坏异步共享边界并放大入口包 A eager 让共享依赖提前注册进入口,破坏异步协商时序并让每个远程各带一份大依赖,放大入口体积 ✓ 正确答案 B eager 不会影响共享依赖的注册时机 C eager 可以解决共享依赖的版本冲突 D eager 打包不会增加入口体积
# 41. React、Vue 与 Solid 子应用共存时,怎样隔离全局 polyfill、Custom Elements 注册表、CSS reset、事件补丁和 devtools hook,避免后加载技术栈修改先加载应用的运行时行为 A Custom Elements 注册表天然支持同名元素多版本共存 B 多技术栈共存需对 polyfill、Custom Elements、CSS reset、事件补丁与 devtools hook 分别做命名空间或作用域隔离,并做加载顺序组合验证 ✓ 正确答案 C 后加载应用的 CSS reset 不影响先加载应用 D devtools hook 各框架互不干扰,无需处理