---
title: 元素总览
order: 1
---
## 元素体系
G6 图表的核心是由三种基本元素构成:**节点(Node)**、**边(Edge)** 和 **组合(Combo)**。这些元素是构建复杂图形网络的基础单元。
### 节点 (Node)
[节点](/manual/element/node/overview) 表示图中的实体或概念,如人物、地点、对象等。G6 提供了丰富的内置节点类型:
G6 还支持 [使用 React 定义节点](/manual/element/node/react-node) 或 [自定义节点](/manual/element/node/custom-node) 以满足特定需求。
### 边 (Edge)
[边](/manual/element/edge/overview)表示节点间的连接关系,如朋友关系、交易往来等。G6 内置多种边类型:
当内置边不满足需求时,可以通过 [自定义边](/manual/element/edge/custom-edge) 来实现复杂的连接表现。
### 组合 (Combo)
[组合](/manual/element/combo/overview)是一种特殊元素,可以包含节点和其他组合,用于表示集合、分组或层级关系。G6 内置两种组合类型:
- **圆形组合**(`circle`):适合紧凑型分组
- **矩形组合**(`rect`):适合规则布局的分组
组合支持嵌套、拖拽、展开/收起等交互,可以通过 [自定义组合](/manual/element/combo/custom-combo) 来实现更复杂的容器行为。
## 元素构成原理
每个元素由一个或多个基础图形(Shape)组成。图形是 G6 中的最小图形单元,包括 [矩形](/manual/element/shape/properties#rectstyleprops)、[圆形](/manual/element/shape/properties#circlestyleprops)、[文本](/manual/element/shape/properties#textstyleprops)、[路径](/manual/element/shape/properties#pathstyleprops)等。
例如:
- 一个节点可能由背景图形(如圆形)和文本标签组成
- 一条边可能由路径、箭头和文本标签组成
- 一个组合可能由容器图形、标题文本和展开/收起按钮组成
要了解更多关于图形的信息,请参阅 [图形 Shape 总览](/manual/element/shape/overview) 和 [Shape 样式属性](/manual/element/shape/properties)。
## 元素状态
[元素状态](/manual/element/state) 是一种强大的机制,用于展示元素在不同交互或业务场景下的视觉变化。G6 提供了一套完整的状态管理系统:
- **预设状态**:`selected`(选中)、`highlight`(高亮)、`active`(激活)等
- **状态叠加**:元素可同时拥有多个状态,样式按优先级叠加
- **自定义状态**:可根据业务需求定义任意状态
## 配置元素
G6 5.x 采用扁平化的配置结构,所有元素的配置都在同一层级,便于查找和管理:
```typescript
{
node: {
// 节点默认样式
style: {
fill: 'orange',
labelText: 'node',
},
// 节点在不同状态下的样式
state: {
selected: {
stroke: '#1890FF',
lineWidth: 2,
}
}
},
edge: {
// 边默认样式
style: {
stroke: '#aaa',
},
// 边在不同状态下的样式
state: {
highlight: {
stroke: 'red',
}
}
},
combo: {
// 组合默认样式
style: {
fill: 'lightblue',
stroke: 'blue',
}
}
};
```
配置方式有三种,按优先级从高到低:
1. **使用实例方法动态配置**:如 `graph.setNode()`、`graph.setEdge()`、`graph.setCombo()`
2. **实例化图时全局配置**:在 `new Graph()` 时指定配置项
3. **在数据中配置**:在节点、边、组合的数据对象中设置
在 VSCode 等编辑器中,你可以看到元素的全部可配置属性,并基于关键字进行搜索:
## 扩展能力
G6 提供了强大的扩展能力,满足各种自定义需求:
- **自定义节点**:[自定义节点指南](/manual/element/node/custom-node)
- **自定义边**:[自定义边指南](/manual/element/edge/custom-edge)
- **自定义组合**:[自定义组合指南](/manual/element/combo/custom-combo)
- **React 节点**:[使用 React 定义节点](/manual/element/node/react-node)
- **3D 扩展**:通过 `@antv/g6-extension-3d` 使用 3D 节点
## 内置元素参考
### 节点类型
- [内置节点库](/manual/element/node/base-node)
### 边类型
- [内置边库](/manual/element/edge/base-edge)
### 组合类型
- [内置组合库](/manual/element/combo/base-combo)