JavaScript is required

核心概念解析

在深入 API 和高级能力之前,建议先理解 relation-graph 的核心概念模型。

1. 节点(JsonNode / RGNode

节点用于表示图中的实体对象。

常见字段:

  • id:唯一标识(必填)
  • text:展示文本
  • xy:坐标位置(可选,是否生效取决于布局)
  • data:业务自定义数据
  • classNamecolorwidthheight 等样式相关字段

2. 连线(JsonLine / RGLine

连线用于表示节点之间的方向关系。

常见字段:

  • from:起点节点 id
  • to:终点节点 id
  • text:连线文本
  • data:业务自定义数据
  • colorlineWidthdashTypeclassName 等样式相关字段

3. 关联对象(RGLink

Link 是基于连线在运行时派生出的对象。

它会关联:

  • 连线本身
  • fromNodetoNode 节点对象
  • 用于渲染与交互的运行时附加信息

当你需要在事件中拿到“线 + 两端节点 + 状态信息”时,通常会使用 Link

4. 图谱实例(RelationGraphInstance

图谱实例是 relation-graph 在运行时的控制器。

你可以通过它:

  • 加载与更新图数据
  • 执行布局
  • 控制视口(居中、缩放、移动)
  • 查询节点/关联并执行图分析操作

多数高级功能都基于实例 API 实现。

5. 布局(Layout)

布局决定节点在画布上的排列方式。

常见类型:

  • 树布局
  • 中心布局
  • 力导向布局
  • 第三方布局器集成(满足特殊场景)

布局会直接影响图的可读性、交互体验和性能。

6. 画布与视口(Canvas / Viewport)

relation-graph 在画布容器中渲染图形内容。

关键理解:

  • 拖动画布本质是修改画布偏移
  • 缩放本质是修改画布缩放比例
  • 视口层内容可以不跟随画布缩放

理解这一点有助于你实现自定义背景层与视图层。

7. 插槽、事件与 Hooks

这是 relation-graph 的三类扩展能力:

  • 插槽(Slots):自定义节点、连线、画布、视图渲染。
  • 事件(Events):响应点击、拖拽、右键等交互。
  • Hooks:以框架友好的方式访问图状态与运行时数据。

最小数据示例

{
  "rootId": "a",
  "nodes": [
    { "id": "a", "text": "A" },
    { "id": "b", "text": "B" }
  ],
  "lines": [
    { "from": "a", "to": "b", "text": "A -> B" }
  ]
}

下一步阅读