插件系统介绍
下一篇
插件结构
Loading...
在持续迭代的过程中,开发之初很难把所有需要支持的功能都想清楚,有时候还需要借助社区的力量去持续生产新的功能点,或者优化已有的功能。这就需要系统具备一定的可扩展性。而插件模式就是常常选用的方法,其优点包括:
在众多常用软件中都能找到插件系统的存在,例如 Webpack、VSCode 和 Chrome 浏览器。
为了让渲染引擎也具有良好的可扩展性,我们也内置了一套插件系统,让不同的渲染器可以在运行时扩展自身能力。目前支持的完整插件集如下。
首先引入核心和渲染器,然后在 HTML 中引入插件的 UMD:
<!-- 插件 --><script src="https://unpkg.com/@antv/g-plugin-rough-canvas-renderer@1.7.16/dist/index.umd.min.js"></script>
然后在 window.G
的命名空间下使用插件,以 g-plugin-rough-canvas-renderer 为例:
const plugin = new window.G.RoughCanvasRenderer.Plugin();
首先安装核心包和渲染器,然后安装插件,以 g-plugin-rough-canvas-renderer 为例:
npm install @antv/g-plugin-rough-canvas-renderer --save
然后可以使用 registerPlugin 在渲染器上注册插件:
import { Plugin } from '@antv/g-plugin-rough-canvas-renderer';renderer.registerPlugin(new Plugin());
渲染器本质上是由一组插件组成,以 g-canvas 为例,在构造函数中内置了一系列插件:
this.registerPlugin(new ContextRegisterPlugin());this.registerPlugin(new ImageLoader.Plugin());this.registerPlugin(new CanvasPathGenerator.Plugin());this.registerPlugin(new CanvasRenderer.Plugin());this.registerPlugin(new DomInteraction.Plugin());this.registerPlugin(new CanvasPicker.Plugin());this.registerPlugin(new HTMLRenderer.Plugin());
在运行时也可以扩展它们的能力:
import { Plugin } from '@antv/g-plugin-rough-canvas-renderer';renderer.registerPlugin(new Plugin());