g6/packages/site/docs/manual/customize/overview.zh.md
yvonneyx 62bab14689
docs: complete docs of custom node,edge,combo (#5171)
* 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>
2023-11-22 10:36:13 +08:00

19 KiB
Raw Blame History

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 支持图片或多文本