如何使用 Graphin

Graphin 最基础的角色是 React 组件,下表是<Graphin />的接口说明.

属性名Typescript 类型默认值说明
dataGraphinProps.data数据结构
layoutLayout{type:"grid"}设置布局
themeThemeType{mode:"#light",...}设置主题
refReactRef-Graphin 组件 Ref
widthnumber-Graphin 画布宽度,推荐通过父元素容器设置宽度,默认宽度为 100%
heightnumber-Graphin 画布高度,推荐通过父元素容器设置宽度,默认最小高度 500px
styleReact.CSSProperties{height: '100%',width: '100%',background: '#fff'}Graphin 画布的样式
containerIdstringgraphin-containerGraphin 容器的 ID,一般用于多实例管理的场景下
containerStyleReact.CSSProperties{height: '100%',width: '100%',position: 'relative'}Graphin 容器的样式
modesG6.Modes-推荐使用 Behaviors
pluginsG6.Plugins-推荐使用 Components
defaultNode节点的默认样式配置
defaultEdge边的默认样式配置
defaultComboCombo 的默认样式配置
nodeStateStyles不同状态下的节点样式配
edgeStateStyles不同状态下的边样式配置
comboStateStyles不同状态下的 Combo 样式配置
fitViewbooleanfalse是否开启画布自适应。开启后图自动适配画布大小
fitCenterbooleanfalse开启后,图将会被平移,图的中心将对齐到画布中心,但不缩放。优先级低于 fitView
fitViewPaddingnumber[][0,0]fitView 为 true 时生效。图适应画布时,指定四周的留白
minZoomnumber0.2最小缩放比例
maxZoomnumber10最大缩放比例
enabledStackbooleanfalse是否启用 stack,即是否开启 redo & undo 功能
maxStepnumber10redo & undo 最大步数, 只有当 enabledStack 为 true 时才起作用

如何使用 Graphin 中的 graph 实例

01. 通过 Ref 获取

import React from 'react';
import Graphin, { Utils } from '@antv/graphin';
const data = Utils.mock(10)
.circle()
.graphin();
const Demo = () => {
const graphinRef = React.createRef();
React.useEffect(() => {
const {
graph, // g6 的Graph实例
apis, // Graphin 提供的API接口
} = graphinRef.current;
console.log('ref', graphinRef, graph, apis);
}, []);
return (
<div className="App">
<Graphin data={data} ref={graphinRef}></Graphin>
</div>
);
};
export default Demo;

02.通过 context 获取

import React from 'react';
import Graphin, { Utils, GraphinContext } from '@antv/graphin';
const data = Utils.mock(10)
.circle()
.graphin();
const CustomComponents = () => {
// 只要包裹在Graphin内的组件,都可以通过Context获得Graphin提供的graph实例和apis
const { graph, apis } = React.useContext(GraphinContext);
return null;
};
const Demo = () => {
return (
<div className="App">
<Graphin data={data} ref={graphinRef}>
<CustomComponents />
</Graphin>
</div>
);
};
export default Demo;

G6 的实例 graph

参考 G6 graph 的实例方法:https://g6.antv.vision/zh/docs/api/graphFunc/get_set

常用的方法如下:

Graphin 内建接口 apis

未来 Graphin 的版本迭代,将会将常用的接口 在 Graphin 上层聚合透出

API

属性名描述类型默认值
handleAutoZoom将视窗缩放至自适应画布的大小() => { text: string; ratio: number; }(必选)
handleRealZoom将视窗缩放到1:1大小() => { text: string; ratio: number; }(必选)
handleChangeZoom自定义缩放() => { text: string; ratio: number; }(必选)
handleZoomIn放大() => { text: string; ratio: number; }(必选)
handleZoomOut缩小() => { text: string; ratio: number; }(必选)
focusNodeById根据节点ID查询(nodeId: string) => void(必选)
highlightNodeById根据节点ID,高亮关联节点(nodeId: string[]) => void(必选)