mirror of
https://gitee.com/antv/g6.git
synced 2024-12-15 10:01:09 +08:00
62bab14689
* docs: update docs of extension list * docs: complete docs of custom node,edge,combo * docs: remove node edge extension --------- Co-authored-by: yvonneyx <banxuan.zyx@antgroup.com>
19 KiB
19 KiB
title | order |
---|---|
概述 | 0 |
G6 提供了自由的扩展机制,除了 Graph 本身以外,其他能力都是 G6 的“扩展(Extensions)”。G6 5.0 的扩展分类为:
- 节点
- 边
- combo
- 数据转换器
- 交互
- 布局算法
- 插件
- 主题
为了减少包体积,G6 5.0 采用了按需加载的方式,只有在使用到某个扩展时才会引入对应的代码,以引入节点扩展为例:
import { Graph as BaseGraph, extend, Extensions } from '@antv/g6';
/**
* 扩展 Graph,注册需要使用的内置功能,第二个参数是注册表
*/
const Graph = extend(BaseGraph, {
nodes: {
'custom-node': Extensions.RectNode,
},
});
// 使用扩展后的类进行实例化
const graph = new Graph({
node: {
type: 'custom-edge',
},
});
:::warning{title=注意}
除了默认注册的扩展,其他扩展都需要通过 extend
方法注册到 Graph 上后才能使用
:::
内置的扩展
1. 节点(nodes)
type 名称 | 引入方式 | 是否默认注册 | Demo | API | 注释 |
---|---|---|---|---|---|
'circle-node' | Extensions.CircleNode | ✅ 是 | DEMO | API | |
'rect-node' | Extensions.RectNode | ✅ 是 | 矩形 DEMO,圆角矩形 DEMO | API | |
'image-node' | Extensions.ImageNode | ✅ 是 | DEMO | API | |
'donut-node' | Extensions.DonutNode | 否 | DEMO | API | |
'diamond-node' | Extensions.DiamondNode | 否 | DEMO | API | |
'hexagon-node' | Extensions.HexagonNode | 否 | DEMO | API | |
'star-node' | Extensions.StarNode | 否 | DEMO | API | |
'triangle-node' | Extensions.TriangleNode | 否 | DEMO | API | |
'ellipse-node' | Extensions.EllipseNode | 否 | DEMO | API | |
'modelRect-node' | Extensions.ModelRectNode | 否 | DEMO | API | |
'sphere-node' | Extensions.SphereNode | 否 | DEMO | API | 仅在 renderer: 'webgl-3d' 时可使用 |
'cube-node' | Extensions.CubeNode | 否 | DEMO | API | 仅在 renderer: 'webgl-3d' 时可使用 |
2. 边(edges)
type 名称 | 引入方式 | 是否默认注册 | Demo | API | 注释 |
---|---|---|---|---|---|
'line-edge' | Extensions.LineEdge | ✅ 是 | DEMO | API | |
'loop-edge' | Extensions.LoopEdge | ✅ 是 | DEMO | API | |
'quadratic-edge' | Extensions.QuadraticEdge | 否 | DEMO | API | |
'cubic-edge' | Extensions.CubicEdge | 否 | DEMO | API | |
'polyline-edge' | Extensions.PolylineEdge | 否 | DEMO | API | |
'cubic-horizontal-edge' | Extensions.CubicHorizontalEdge | 否 | DEMO | API | |
'cubic-vertical-edge' | Extensions.CubicVerticalEdge | 否 | DEMO | API |
3. Combo (combos)
type 名称 | 引入方式 | 是否默认注册 | Demo | API | 注释 |
---|---|---|---|---|---|
'circle-combo' | Extensions.CircleCombo | ✅ 是 | DEMO | API | |
'rect-combo' | Extensions.RectCombo | ✅ 是 | DEMO | API |
4. 数据转换器 (transforms)
用于处理数据,在原始数据输入图后被调用。若有多个,按其配置的数组顺序执行)。
type 名称 | 引入方式 | 是否默认注册 | Demo | 注释 |
---|---|---|---|---|
'transform-v4-data' | Extensions.TransformV4Data | ✅ 是 | ||
'map-node-size' | Extensions.MapNodeSize | ✅ 是 |
5. 交互 (behaviors)
所有内置、自定义交互应当继承 Extensions.BaseBehavior
或其他已有的交互。
type 名称 | 引入方式 | 是否默认注册 | Demo | API | 注释 |
---|---|---|---|---|---|
'drag-canvas' | Extensions.DragCanvas | ✅ 是 | DEMO | API | |
'zoom-canvas' | Extensions.ZoomCanvas | ✅ 是 | DEMO | API | |
'drag-node' | Extensions.DragNode | ✅ 是 | DEMO | API | |
'drag-combo' | Extensions.DragCombo | ✅ 是 | DEMO | API | |
'click-select' | Extensions.ClickSelect | ✅ 是 | DEMO | API | |
'collapse-expand-combo' | Extensions.CollapseExpandCombo | ✅ 是 | DEMO | API | |
'collapse-expand-tree' | Extensions.CollapseExpandTree | ✅ 是 | DEMO | API | |
'activate-relations' | Extensions.ActivateRelations | 否 | DEMO | API | |
'hover-activate' | Extensions.HoverActivate | 否 | DEMO | API | |
'brush-select' | Extensions.BrushSelect | 否 | DEMO | API | |
'lasso-select' | Extensions.LassoSelect | 否 | DEMO | API | |
'create-edge' | Extensions.CreateEdge | 否 | DEMO | API | |
'shortcuts-call' | Extensions.ShortcutsCall | 否 | DEMO | API | |
'scroll-canvas' | Extensions.ScrollCanvas | 否 | DEMO | API | |
'orbit-canvas-3d' | Extensions.OrbitCanvas3D | 否 | DEMO | API | 仅在 renderer: 'webgl-3d' 时可使用 |
'track-canvas-3d' | Extensions.TrackCanvas3D | 否 | DEMO | API | 仅在 renderer: 'webgl-3d' 时可使用 |
'zoom-canvas-3d' | Extensions.ZoomCanvas3D | 否 | DEMO | API | 仅在 renderer: 'webgl-3d' 时可使用 |
5. 布局算法 (layouts)
type 名称 | 引入方式 | 是否默认注册 | Demo | API | 注释 |
---|---|---|---|---|---|
'force' | Extensions.ForceLayout | ✅ 是 | DEMO | API | |
'grid' | Extensions.GridLayout | ✅ 是 | DEMO | API | |
'circular' | Extensions.CircularLayout | ✅ 是 | DEMO | API | |
'concentric' | Extensions.ConcentricLayout | ✅ 是 | DEMO | API | |
'random' | Extensions.RandomLayout | 否 | API | ||
'mds' | Extensions.MDSLayout | 否 | DEMO | API | |
'radial' | Extensions.RadialLayout | 否 | DEMO | API | |
'fruchterman' | Extensions.FruchtermanLayout | 否 | DEMO | API | |
'd3-force' | Extensions.D3ForceLayout | 否 | API | ||
'force-atlas-2' | Extensions.ForceAtlas2Layout | 否 | DEMO | API | |
'dagre' | Extensions.DagreLayout | 否 | DEMO | API | |
'comboCombined' | Extensions.ComboCombinedLayout | 否 | DEMO | API | |
'compactBox' | Extensions.compactBox | 否 | DEMO | API | |
'dendrogram' | Extensions.compactBox | 否 | DEMO | API | |
'indented' | Extensions.compactBox | 否 | DEMO | API | |
'mindmap' | Extensions.mindmap | 否 | DEMO | API |
6. 插件 (plugins)
所有内置、自定义插件应当继承 Extensions.BasePlugin
或其他已有的插件。
type 名称 | 引入方式 | 是否默认注册 | Demo | API | 注释 |
---|---|---|---|---|---|
'history' | Extensions.History | ✅ 是 | DEMO | API | |
'toolbar' | Extensions.Toolbar | 否 | DEMO | API | |
'tooltip' | Extensions.Tooltip | 否 | DEMO | API | |
'minimap' | Extensions.Minimap | 否 | DEMO | API | |
'grid' | Extensions.Grid | 否 | DEMO | API | |
'menu' | Extensions.Menu | 否 | DEMO | API | |
'fisheye' | Extensions.Fisheye | 否 | DEMO | API | |
'legend' | Extensions.Legend | 否 | DEMO | API | |
'timebar' | Extensions.Timebar | 否 | DEMO | API | |
'hull' | Extensions.Hull | 否 | DEMO | API | |
'snapline' | Extensions.Snapline | 否 | DEMO | API | |
'watermarker' | Extensions.WaterMarker | 否 | DEMO | API | 支持图片或多文本 |