用途:在 TanStack Charts 中扩展最窄的所有权边界。先证明内置 mark、一方布局、变换、分面、视图与受控行为已无法表达所需语义,再按 trigger → inspect → decide → build → verify 流程实现自定义扩展。
升级路径:内置或一方复合 mark → 多个内置 mark → 分面或命名视图组合 → D3/应用端预处理的语义行 → compositeMark 复用普通 mark 组合 → createMark 新渲染器中立几何 → 仅当涉及最终边界拓扑或碰撞时才用 resolveLayout → 自定义控件 → 不同平台界面用自定义渲染器/宿主。选择前先读 references/extension-protocols.md。
主要能力与用法:用 createMark 创建带声明的比例值和确定性场景键的渲染器中立 mark,示例从 @tanstack/charts 导入 createMark、defineChart,从 @tanstack/charts/scales/linear 导入 scaleLinear。初始化阶段声明所有必须建立 x、y 或颜色域的语义值,渲染时通过已解析比例映射,禁止在 render 内推断私有位置域。只对语义目标发出交互点,保留原始数据、稳定键、语义值、解析坐标与分组/颜色标识。仅对分箱、碰撞、打包或依赖解析比例与内部边界的拓扑使用 resolveLayout,回调须同步、纯、确定性,因为边距求解可能多次调用。
限制与常见错误:禁止在 initialize、resolveLayout 或 render 中读写 DOM、查询文本、追加 SVG 或检查浏览器布局,平台生命周期应放在渲染器或宿主扩展;场景编译须对 SSR、Canvas、原生、导出与测试保持确定性。不要在 render 推断私有位置域。区分交互值与比例值,间隔或布局聚焦一个语义值却在比例上物化不同端点类型时用 createMarkWithScaleValues。避免在 resolveLayout 中产生副作用。自定义 DOM 行为易原型化但会破坏渲染器一致性,应优先渲染器中立点、焦点引导、控件与语义应用状态,平台代码隔离在宿主接缝。
具体 API 细节、价格或安装命令暂未提供。