JavaScript is required

关联对象数据(RGLink

RGLink 是运行时根据连线自动派生的只读对象。

它把一条线与两端节点、渲染相关元信息整合在一起,适合事件处理与关系分析。

1. 核心特性

  • RGLink 不是用户手动创建的数据。
  • RGLink 不能直接修改。
  • 需要修改 Line/Node,然后由引擎自动重新计算 RGLink

2. 获取方式

const links = graphInstance.getLinks();
const link = graphInstance.getLinkByLineId('line-a-b');

3. 核心字段

  • lineId: string
  • line: RGLine
  • fromNode: RGNode
  • toNode: RGNode
  • totalLinesBetweenNodes: number
  • currentLineIndex: number
  • rgShouldRender?: boolean
  • rgCalcedVisibility?: 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. 只读数据流理解

正确更新路径:

  1. 修改 RGLine 或节点数据
  2. 引擎重新计算关系运行时状态
  3. RGLink 自动反映最新结果

6. 实践建议

  • RGLink 当作“计算后的关系上下文”,不是持久化数据。
  • 导出/存储时应保存 node/line/fakeLine,而非 RGLink
  • RGLink 适合用于事件回调、属性面板、图分析展示。

7. 下一步阅读