logo

G6

  • 文档
  • API
  • 图表示例
  • 社区
  • 所有产品antv logo arrow
  • 5.0.47
  • 数据
  • 画布操作
  • 元素操作
  • 图实例
  • 绘制与渲染
  • 视口操作
  • 布局
  • 图配置项
  • 插件
  • 交互
  • 主题
  • 数据处理
  • 事件监听
  • 导出图片
  • 坐标转换

插件

上一篇
图配置项
下一篇
交互

Resources

Ant Design
Galacea Effects
Umi-React 应用开发框架
Dumi-组件/文档研发工具
ahooks-React Hooks 库

社区

体验科技专栏
seeconfSEE Conf-蚂蚁体验科技大会

帮助

GitHub
StackOverflow

more products更多产品

Ant DesignAnt Design-企业级 UI 设计语言
yuque语雀-知识创作与分享工具
EggEgg-企业级 Node 开发框架
kitchenKitchen-Sketch 工具集
GalaceanGalacean-互动图形解决方案
xtech蚂蚁体验科技
© Copyright 2025 Ant Group Co., Ltd..备案号:京ICP备15032932号-38

Loading...

插件概述

插件(Plugin)是 G6 中扩展功能的重要机制,用于增强图表的功能和交互体验。插件通常提供一些独立的功能模块,如缩略图、工具栏、上下文菜单等,它们可以与图表主体良好集成,同时又保持代码的模块化和可维护性。

插件系统设计遵循"即插即用"的原则,可以根据需要动态添加或移除。

API 参考

Graph.getPluginInstance(key)

获取指定 key 的插件实例,用于访问和操作插件提供的方法。

getPluginInstance<T extends Plugin>(key: string): T;

参数

参数描述类型默认值必选
key插件的唯一标识符string-✓

返回值

  • 类型: 插件实例
  • 描述: 指定 key 对应的插件实例

说明

许多插件提供了特定的API方法,通过获取插件实例可以直接调用这些方法。例如,全屏插件提供了 request() 和 exit() 方法来控制全屏状态。

示例: 操作全屏插件

// 获取全屏插件实例
const fullscreen = graph.getPluginInstance('fullscreen');
// 请求进入全屏
fullscreen.request();
// 稍后退出全屏
setTimeout(() => {
fullscreen.exit();
}, 5000);

Graph.getPlugins()

获取当前图表中所有已配置的插件。

getPlugins(): PluginOptions;

返回值

  • 类型: PluginOptions
  • 描述: 当前图表中已配置的所有插件

示例

// 获取所有插件配置
const plugins = graph.getPlugins();
// 查看当前激活的插件
console.log('当前图表的插件配置:', plugins);

Graph.setPlugins(plugins)

设置图表的插件,将替换所有现有的插件配置。

setPlugins(plugins: PluginOptions | ((prev: PluginOptions) => PluginOptions)): void;

参数

参数描述类型默认值必选
plugins新的插件配置,或一个基于当前配置返回新配置的函数PluginOptions | ((prev: PluginOptions) => PluginOptions)-✓

说明

设置的插件会全量替换原有的插件配置。如果需要在现有插件基础上添加新插件,可以使用函数式更新方式:

graph.setPlugins((plugins) => [...plugins, { type: 'grid', key: 'grid-line' }]);

示例 1: 设置基本插件

// 设置多个基本插件
graph.setPlugins([
// 字符串形式(使用默认配置)
'minimap',
// 对象形式(自定义配置)
{
type: 'grid',
key: 'grid-line',
},
{
type: 'toolbar',
key: 'graph-toolbar',
position: 'top-right',
},
]);

示例 2: 使用函数式更新

// 添加新插件到现有配置
graph.setPlugins((currentPlugins) => [
...currentPlugins,
{
type: 'grid',
key: 'grid-line',
},
]);
// 替换特定插件
graph.setPlugins((currentPlugins) => {
// 过滤掉现有的网格插件
const filteredPlugins = currentPlugins.filter((plugin) => {
if (typeof plugin === 'string') return plugin !== 'grid';
if (typeof plugin === 'function') return true;
return plugin.type !== 'grid';
});
// 添加新的网格插件配置
return [
...filteredPlugins,
{
type: 'grid',
key: 'new-grid',
follow: true,
},
];
});

Graph.updatePlugin(plugin)

更新指定的插件配置,需要通过 key 标识要更新的插件。

updatePlugin(plugin: UpdatePluginOption): void;

参数

参数描述类型默认值必选
plugin更新的插件配置UpdatePluginOption-✓

说明

如果要更新一个插件,必须在原始插件配置中指定 key 字段,以便能够准确找到并更新该插件。

示例 1: 更新插件配置

// 初始设置插件时指定 key
graph.setPlugins([
{
type: 'grid',
key: 'main-grid',
follow: true,
},
]);
// 更新网格插件配置
graph.updatePlugin({
key: 'main-grid',
follow: false,
});

类型定义

PluginOptions

插件配置类型,表示一组插件配置的数组。

type PluginOptions = (string | CustomPluginOption | ((this: Graph) => CustomPluginOption))[];

CustomPluginOption

自定义插件配置接口,用于配置插件参数。

type CustomPluginOption = {
// 插件类型
type: string;
// 插件 key,即唯一标识
// 用于标识插件,从而进一步操作此插件
key?: string;
// 针对不同类型的插件,还可能有其他配置项
[configKey: string]: any;
};

UpdatePluginOption

更新插件的配置接口,用于动态修改插件参数。

type UpdatePluginOption = {
// 要更新的插件的唯一标识
key: string;
// 其他要更新的配置项
[configKey: string]: unknown;
};