以下教程聚焦于 AntV?G6 的 數據操作 API,詳細介紹各個方法的用途、參數以及完整的使用示例,幫助你在圖實例上精細地讀取、修改和管理節點/邊/組合等數據。文中示例代碼均基于 G6 v5.0.47 官方文檔 ([g6.antv.antgroup.com][1])。
一、獲取完整圖數據
1.1 graph.getData()
- 功能:一次性獲取圖中的所有節點(nodes)、邊(edges)和組合(combos)數據。
- 返回值:
Required<GraphData>
,包含{ nodes: NodeData[]; edges: EdgeData[]; combos: ComboData[] }
。
// 在已有 Graph 實例 graph 上調用
const graphData = graph.getData();
console.log('所有節點:', graphData.nodes);
console.log('所有邊:', graphData.edges);
console.log('所有組合:', graphData.combos);
([g6.antv.antgroup.com][1])
二、讀取節點 / 邊 / 組合 數據
G6 支持按 ID 或批量讀取,也可獲取指定狀態下的數據。
2.1 graph.getNodeData()
// 讀取所有節點
const allNodes = graph.getNodeData();// 讀取單個節點
const node1 = graph.getNodeData('node1');
console.log('node1 坐標:', node1.style.x, node1.style.y);// 批量讀取
const [n1, n2] = graph.getNodeData(['node1', 'node2']);
([g6.antv.antgroup.com][1])
2.2 graph.getEdgeData()
// 讀取所有邊
const allEdges = graph.getEdgeData();// 讀取單條邊
const edge1 = graph.getEdgeData('edge1');
console.log('edge1:', edge1.source, '→', edge1.target);// 批量讀取
const [e1, e2] = graph.getEdgeData(['edge1', 'edge2']);
([g6.antv.antgroup.com][1])
2.3 graph.getComboData()
// 讀取所有組合
const allCombos