每日一博 | 前端插件化架构的探索和实践
babel插件、webpack插件、vue-cli插件,为啥这么多的优秀框架都是使用插件系统?插件化架构是什么?带来了什么好处?可以应用到什么场景呢? 1. 插件化架构定义 插件化架构又称微核架构,指的是软件的内核相对较小,主要功能和业务逻辑都通过插件实现。插件化架构一般有两个核心的概念:内核和插件。 内核(pluginCore)通常只包含系统运行的最小功能; 插件(plugin)则是互相独立的模块,一般会提供单一的功能。 内核一般会将要完成的所有业务进行抽象,抽象出最小粒度的基础接口,供插件方来调用。这样,插件开发的效率将会极大的提高。比方说,浏览器就是一个典型的插件化架构,浏览器是内核,页面是插件,这样通过不同的URL地址加载不同的页面,来提供非常丰富的功能。而且,我们开发网页时候,浏览器会提供很多API和能力,这些接口通过 window来挂载, 比如,DOM、BOM、Event、Location等等。 设计一个完善的插件化架构的系统,包含三要素: plugCore:插件内核,提供插件运行时,管理插件的加载、运行、卸载等生命周期(类比浏览器); pluginAPI:插件运行时需要的...