小概念:组件和插件
孔子曰:“勿意,勿必,勿固,勿我。学而不思则罔,思而不学则殆。”
具体区别如下:
1. 组件 (Component)
· 核心:为了复用。它封装了界面和功能,是应用架构的一部分。比如按钮、输入框、轮播图等。
· 依赖关系:强依赖宿主框架,必须在特定框架(如 Vue、React)内使用,脱离框架无法运行。
· 控制权:被动。由宿主应用主动控制组件的生命周期,决定它何时创建、更新和销毁。
2. 插件 (Plugin)
· 核心:为了扩展。它不依赖特定业务,能独立增加功能。比如视频播放器插件、浏览器翻译插件、构建打包插件等。
· 依赖关系:松耦合。通过标准接口连接,可以不依赖具体业务逻辑,甚至跨应用使用。
· 控制权:主动。插件在注册后,通常能监听或拦截宿主的特定事件,主动扩展行为。
一个更形象的类比:
· 组件就像乐高积木里专门形状的砖块。你必须按照图纸,把它们插在固定位置上,才能拼出房子。
· 插件则像电源扩展坞。你不需要改变房子结构,只需要有个通用插口(标准API),接上就能让房子拥有充电功能。
实际例子:
· UI组件:Element UI 里的日期选择器、Ant Design 的表格。它们是 Vue/React 应用界面的一部分。
· Webpack插件:HtmlWebpackPlugin。它在打包流程的特定时刻执行任务,不影响核心代码结构。
· 浏览器插件:AdBlock。它通过浏览器提供的标准API接口,独立安装和运行。
总结一句话:组件是“被集成”到系统内部的,插件是“附加”到系统外部的。
|
|
再小的个体,也有自己的目标。
夜雨聆风
