主题
组件图(Component)
TIP
图较宽时可在图内横向滚动;下方表格是同一份信息的可搜索版本。
系统上下文
正在渲染图表…
上层提供文档、注册表和主题;draw 返回几何、场景或介质输出。
包内组件
正在渲染图表…
箭头表示组件依赖,包含运行期 import 与类型契约。入口层可以认识所有模块,核心模块不能 反向认识组合根。
组件职责
| 组件 | 负责 | 明确不知道 |
|---|---|---|
contract | schema、v1 升级、引用校验 | registry、theme、几何 |
bind | type → entry、props 归一化、未知回落 | 盒子、路由、render |
registry | 形状 / 边 / marker 契约、不可变版本 | 文档、主题、布局算法 |
measure | 文本度量、标签折行、fingerprint | 节点位置、宿主 |
theme | tokens、typography、typeStyles | 文档引用了哪些 token |
layout | measure / place / attach / route | 最终画法、介质 |
build | 样式合流、render、Scene key | 如何计算坐标 |
scene | Scene、ref、diff、hitTest | 文档语义、宿主 |
host-svg | Scene → SVG 字符串 | 文档、布局 |
host-dom | Scene patch → DOM | 文档、布局 |
pipeline | 阶段组合与缓存 | 介质、上一帧 patch |
handle | Pipeline + diff + host | 布局或画法算法 |
依赖规则
contract不依赖任何绘制模块。registry不依赖 theme、layout 或 bind。bind只依赖 contract + registry。layout拿不到 render。build是唯一同时使用 layout 与 render 的模块。scene不依赖 document、layout 或 host。host-*不依赖 document、build、pipeline 或 handle。pipeline/handle是组合根,不能被核心模块反向引用。
外部扩展
正在渲染图表…
这些参数都按值注入,不使用全局单例。