关联对象数据(RGLink)
RGLink 是运行时根据连线自动派生的只读对象。
它把一条线与两端节点、渲染相关元信息整合在一起,适合事件处理与关系分析。
1. 核心特性
RGLink不是用户手动创建的数据。RGLink不能直接修改。- 需要修改
Line/Node,然后由引擎自动重新计算RGLink。
2. 获取方式
const links = graphInstance.getLinks();
const link = graphInstance.getLinkByLineId('line-a-b');
3. 核心字段
lineId: stringline: RGLinefromNode: RGNodetoNode: RGNodetotalLinesBetweenNodes: numbercurrentLineIndex: numberrgShouldRender?: booleanrgCalcedVisibility?: boolean
4. 为什么要用 RGLink
在事件或分析逻辑里,RGLink 能快速提供:
- 起终点节点对象
- 同一节点对之间多条线的序号信息
- 运行时渲染与可见性状态
事件中示例:
const onLineClick = (lineObject, linkObject, event) => {
console.log('from:', linkObject.fromNode.id);
console.log('to:', linkObject.toNode.id);
console.log('index:', linkObject.currentLineIndex, '/', linkObject.totalLinesBetweenNodes);
};
5. 只读数据流理解
正确更新路径:
- 修改
RGLine或节点数据 - 引擎重新计算关系运行时状态
RGLink自动反映最新结果
6. 实践建议
- 把
RGLink当作“计算后的关系上下文”,不是持久化数据。 - 导出/存储时应保存 node/line/fakeLine,而非
RGLink。 RGLink适合用于事件回调、属性面板、图分析展示。