图谱全局配置项(RGOptions)
RGOptions 用于定义图谱的全局行为、交互模式、默认样式和默认布局。
1. 运行时关键规则
<RelationGraph> 的 options 本质上是初始化配置。
图谱初始化后,如果要动态修改配置,请通过图谱实例 API(不同版本可能是 setOptions / updateOptions)进行更新。
const graphOptions = {
showToolBar: false,
wheelEventAction: 'scroll',
dragEventAction: 'move'
};
const graphInstance = RGHooks.useGraphInstance();
graphInstance.updateOptions({
wheelEventAction: 'zoom'
});
2. 交互类配置
常用交互控制项:
wheelEventAction?: 'zoom' | 'scroll' | 'none'dragEventAction?: 'move' | 'selection' | 'none'disableDragNode?: booleandisableDragLine?: booleandisableNodePointEvent?: booleandisableLinePointEvent?: booleandefaultExpandHolderPosition?: 'hide' | 'left' | 'top' | 'right' | 'bottom'
编辑器常用示例:
const graphOptions = {
wheelEventAction: 'scroll',
dragEventAction: 'selection',
disableLinePointEvent: false,
defaultExpandHolderPosition: 'right'
};
3. 节点默认样式配置
defaultNodeColordefaultNodeBorderColordefaultNodeBorderWidthdefaultNodeBorderRadiusdefaultNodeWidthdefaultNodeHeightcheckedItemBackgroundColor
说明:
- 这些值在节点自身未显式设置对应字段时生效。
- 部分默认值在“节点创建/导入时”生效,后续修改默认值不会自动回写已有节点数据。
4. 连线默认样式配置
defaultLineColordefaultLineWidthdefaultLineShapedefaultJunctionPointdefaultLineJunctionOffsetdefaultLineTextOnPathdefaultLineTextOffsetXdefaultLineTextOffsetYlineTextMaxLengthmultiLineDistancedefaultPolyLineRadiusdefaultLineMarker
说明:
- 与节点默认值类似,主要在连线创建/导入阶段生效。
- 多箭头样式建议在
<svg><defs>中定义,再通过startMarkerId/endMarkerId在连线数据里引用。
5. 视图、性能与系统配置
showToolBartoolBarDirection,toolBarPositionH,toolBarPositionVbackgroundColormouseWheelSpeedminCanvasZoom,maxCanvasZoomperformanceModefullscreenElementXPathinstanceId(SSR 场景建议手动设置)debug
6. RGOptions.layout 的生效时机
layout 作为默认布局参数,会在以下流程中被使用:
graphInstance.setJsonData(...)graphInstance.doLayout()- 使用
initialData的初始化流程
const graphOptions = {
layout: {
layoutName: 'tree',
from: 'left',
treeNodeGapH: 150,
treeNodeGapV: 10
}
};
7. 推荐基础配置模板
const graphOptions = {
instanceId: 'my-graph-main',
showToolBar: false,
wheelEventAction: 'scroll',
dragEventAction: 'move',
defaultNodeColor: '#ffffff',
defaultNodeBorderColor: '#666666',
defaultNodeBorderWidth: 1,
defaultLineColor: '#cccccc',
defaultLineWidth: 2,
minCanvasZoom: 5,
maxCanvasZoom: 500,
performanceMode: false,
layout: {
layoutName: 'center'
}
};
8. 常见误区
- 以为直接替换
options响应式对象就能自动更新运行时行为。 - 手动坐标与自动布局在同一阶段混用,导致结果不稳定。
- 把“全局默认值”当成会自动覆盖所有历史节点/连线。