术语表
按主题分组,组内按字母/拼音排序。定义与源码行为一致;点击相关章节链接查看细节。
用法说明:
核心概念
| 术语 | 定义 |
|---|---|
| Micro Frontend(微前端) | 将前端应用按业务垂直拆分、独立开发部署、运行时组装为一个整体的架构风格。 |
| Portal / Shell(门户/宿主) | 微前端的宿主应用:负责路由、布局、加载子应用并注入运行上下文;框架中默认可信。 |
| Runtime(运行时) | 子应用被加载后在浏览器中执行的环境总称,包括沙箱、上下文与服务。 |
| Application / 子应用 | 由 Portal 按需加载的独立业务单元,可以是 Angular / Vue / React / Web Component / 纯 JS。 |
| MfeEngine | 核心引擎类:驱动应用注册、加载、挂载/卸载、销毁与状态流转(@ng-mfe/core)。 |
| Adapter(适配器) | 把不同框架组件的生命周期桥接为微前端统一生命周期的层,如 defineMfeAngularApp / defineMfeVueApp / defineMfeReactApp。 |
| Manifest | 描述子应用入口资源的清单(URL 或内联资源),加载器据此拉取脚本与样式。 |
| AppLoader | 应用加载器:按 manifest 拉取资产、维护 loadedUrls 去重,驱动 ASSETS_* 状态流转。 |
| MfeApp | 子应用的注册/运行配置模型:名称、入口、挂载模式(route / manual / component)、coexist 等。 |
| Mount Mode(挂载模式) | 子应用挂载方式三选一:route(路由驱动)、manual(手动)、component(作为组件嵌入)。 |
| AppStatus | 子应用状态机枚举:NOT_LOADED → ASSETS_LOADING → ASSETS_LOADED → BOOTSTRAPPING → BOOTSTRAPPED → ACTIVE / HIDDEN,以及 LOAD_ERROR。 |
| coexist / HIDDEN | 挂载模式之一:切走时子应用进入 HIDDEN 隐藏而非销毁,再次激活免重复加载与引导(即 keep-alive)。 |
| Preload(空闲预载) | Portal 在浏览器空闲时段(requestIdleCallback)预载子应用资产,不与首屏渲染争抢主线程。 |
| Service Worker 管理 | core 导出的 MfeServiceWorkerManager / PreloadManager / generateSwScript,用于资源预载与缓存策略(需自行启用)。 |
| MfeBootstrapContext | Portal 注入给子应用引导函数的上下文对象,携带 eventBus、sharedState、auth、acl、cache、settings、menu、i18n 等服务实例与宿主元素。 |
| Component Registry(组件注册表) | 跨应用共享组件的注册与获取机制(packages/core/src/component-registry.ts),按名称注册、按需取用。 |
| DevTools | 调试面板包(@ng-mfe/devtools,预算 5KB gzip):installDevTools 安装后可查看应用与状态信息。 |
沙箱与隔离
| 术语 | 定义 |
|---|---|
| Sandbox(沙箱) | 子应用与全局环境之间的隔离层:拦截全局写入与部分 API,销毁时还原,防止互相污染。 |
| Proxy Sandbox | 基于 Proxy 的沙箱:拦截子应用对 window 的读写,写入落在沙箱内部,多实例可并存。已知局限:白名单内的读取会透传 rawWindow。 |
| Snapshot Sandbox | 基于快照的沙箱:激活前保存全局快照、卸载后还原;兼容性最好,但同一时刻只宜有一个激活实例。 |
| Patch(补丁处理器) | 沙箱附带的三类 API 追踪器:TimerPatchHandler(定时器)、EventListenerPatchHandler(事件监听)、DOMPatchHandler(DOM),负责记录与清理。 |
| CSS Isolation(CSS 隔离) | 样式隔离三模式:prefix(选择器加前缀)、shadow(Shadow DOM)、scope(作用域属性),按子应用配置。 |
| Zoneless | 不依赖 zone.js 的 Angular 运行方式:以 Signal 驱动变更检测(provideZonelessChangeDetection);仓库以 guard 脚本与 CI 强制禁用 zone.js。 |
| Signal | Angular 的细粒度响应式原语,Zoneless 模式下变更检测的触发来源。 |
通信与状态
| 术语 | 定义 |
|---|---|
| EventBus | 跨应用发布/订阅事件总线(@ng-mfe/core/event-bus),一次性事件流语义。 |
| RPC | 请求/响应式的跨应用调用:调用方等待返回值,适合"像函数一样"的跨应用能力借用。 |
| SharedState | 跨应用共享状态存储(@ng-mfe/core/shared-state),可订阅变更,支持分层与保护键。 |
| Protected Keys(保护键) | SharedState 的 protectedKeys 配置:列出的键仅 Portal 可修改,子应用写入会抛错。 |
缓存与网络
| 术语 | 定义 |
|---|---|
| L1 / L2 / L3 | 多级缓存的三层:L1 内存、L2 会话(SessionStorage)、L3 持久(LocalStorage),逐层回填。 |
| LRU | Least Recently Used 淘汰策略:超出容量时淘汰最久未使用的条目,实现为 O(1) 操作。 |
| TTL | Time To Live:缓存条目的存活时间,过期后失效并触发回源。 |
| Read-Through(读穿透) | 读取未命中时由缓存层自动回源并回填的读取模式。 |
| Write-Through(写穿透) | 写入时同时更新缓存与底层存储的写入模式。 |
| Single Flight(单飞) | 并发的同 key 请求只发起一次真实回源/刷新,其余等待同一结果的去重模式(Auth 刷新与 Cache getOrSet 均使用)。 |
| CacheMonitor | 缓存监控组件:统计命中率并给出自适应调整建议。 |
| HTTP Pipeline | HTTP 请求的中间件管道:请求/响应依次穿过 Mock、Cache、Deduplicate、Retry、Timeout 等中间件,提供统一 run() 回路。 |
| Deduplicate(去重中间件) | 管道中间件:并发相同 GET 请求只发一个(领导跟随),其余复用结果。 |
地图与可视化
| 术语 | 定义 |
|---|---|
| ChartManager | 图表管理器:同 id 重复创建前先销毁旧实例,提供 destroy/destroyAll 生命周期入口。 |
| Chart Engine(图表引擎) | echarts / @antv/g2 等渲染后端,均为可选 peer 依赖、动态 import() 按需加载。 |
| MapFactory | 地图工厂(@ng-mfe/ui/map):按配置创建地图实例,支持瓦片缓冲预设与 prewarm 预热。 |
| Tile Buffer(瓦片缓冲) | 地图预载瓦片的缓冲范围配置,提供低/中/高三档预设(TILE_BUFFER_PRESETS)。 |
| Worker Warmup / prewarm | 启动时调用 maplibre 的 prewarm() 预热 WebGL/Worker 资源(仅 maplibre 引擎且可用时生效)。 |
| MapLayerRegistry | 声明式图层注册表:按名称注册图层、懒加载,并可按 ACL 过滤可见图层。 |
| requestSeq | smart-table 的请求序号机制:为每次请求递增编号,过期响应被丢弃,防慢响应覆盖新数据。 |
| Schema Form | 按 JSON Schema 动态渲染表单的 UI 组件(@ng-mfe/ui)。 |
服务与工程
| 术语 | 定义 |
|---|---|
| ACL | Access Control List:基于角色(roles)与能力(abilities)的前端权限服务,支持 can() 判断与变更订阅。 |
| Feature Flag | 功能开关服务:按开关名控制功能启停,支持远程配置与订阅变化。 |
| TokenStore | Token 存储抽象:4 种实现(内存/Storage/Cookie 等),Cookie 实现的 sameSite 可配置。 |
| escapeHtml | 将 HTML 特殊字符转义的处理函数(示例见 examples/custom-sub),用于安全渲染不可信文本。 |
| ALLOWED_URL_PATTERN | UrlDataSource 的 URL 白名单正则:仅允许 http(s) 与相对路径的数据源。 |
| MockHttpBackend | @ng-mfe/testing 的 HTTP 假后端:when().respond() 注册桩、expectOne/verify 断言调用。 |
| size-limit | 体积预算工具:按 gzip 口径为各包入口设上限,CI size-check job 强制执行(如 core ≤15KB)。 |
| Nx | monorepo 任务编排工具:驱动 nx run-many 构建/lint/affected 等仓库级任务;不参与框架运行时。 |
| Vite | 仓库示例与文档使用的构建/开发服务器;框架运行时只要求子应用产出原生 ESM,不绑定 Vite。 |
| Native ES Module | 以浏览器原生 ESM(import() 动态加载)作为子应用加载底座,不依赖 Module Federation 等打包器运行时。 |
部署与发布
| 术语 | 定义 |
|---|---|
| entry-map.json | deploy:build 生成的子应用入口文件名映射(构建产物,供参考/校验)。 |
| hash 回填 | 部署构建把 portal 产物 JS 中的占位入口路径替换为带 hash 的真实文件名的步骤;字符串替换实现,有已知局限(审计 P23)。 |
| 混淆(Obfuscate) | 发布前用 javascript-obfuscator 处理产物,三档强度(low / medium / high),发布流水线默认 medium。 |
| immutable 缓存 | 对带内容 hash 的静态资源返回 Cache-Control: immutable 长缓存的策略(见 nginx 示例)。 |
| mfe.init.prod | portal 生产版初始化文件:以相对路径(而非 localhost)引用子应用,deploy:build 构建时临时替换开发版。 |