Extension - 扩展
阅读时间约 2 分钟
扩展 (Extension) 是 G6 中的一个重要概念,它是 G6 中所有可扩展部分的统称,包括以下几种:
G6 提供了 register
函数用于注册扩展,例如:
import { register, ExtensionCategory } from '@antv/g6';import { CustomNode } from './my-custom-node';// 注册节点register(ExtensionCategory.NODE, 'custom-node', CustomNode);
register
函数的第一个参数是扩展的类型,第二个参数是扩展的名称,第三个参数是扩展的实现。
不同的扩展类型之间可以使用相同的扩展名称,但同一类型的扩展重复注册时仅会在第一次注册时生效。
// ✅register(ExtensionCategory.NODE, 'custom-name', CustomNode);register(ExtensionCategory.COMBO, 'custom-name', CustomCombo);// ❌register(ExtensionCategory.NODE, 'custom-name', CustomNode);register(ExtensionCategory.NODE, 'custom-name', CustomNode);
不同的扩展类型的配置位置有所不同,但都是通过指定注册时所使用的名称来使用扩展,例如:
options.node.type
options.edge.type
options.combo.type
options.behaviors
options.layout.type
options.plugins
options.theme
options.transform
options.node.palette
options.edge.palette
等options.node.animate
options.edge.animate
等G6 提供了 getExtension
和 getExtensions
方法分别用于获取指定扩展类型下的单个扩展和所有扩展,例如:
import { getExtension, getExtensions, ExtensionCategory } from '@antv/g6';// 获取注册的名称为 'custom-node' 的节点扩展实现getExtension(ExtensionCategory.NODE, 'custom-node');// 获取所有注册的节点扩展实现getExtensions(ExtensionCategory.NODE);