# 插件

插件的开发和使用自小程序基础库版本 [1.9.6](/miniprogram/dev/framework/compatibility) 开始支持。（如果插件包含页面，则需要基础库版本 [2.1.0](/miniprogram/dev/framework/compatibility) 。）

插件是对一组 JS 接口、[自定义组件](/miniprogram/dev/framework/component-framework/index) 或页面的封装，用于嵌入到小程序中使用。插件不能独立运行，必须嵌入在其他小程序中才能被用户使用；而第三方小程序在使用插件时，也无法看到插件的代码。因此，插件适合用来封装自己的功能或服务，提供给第三方小程序进行展示和使用。

插件开发者可以像开发小程序一样编写一个插件并上传代码，在插件发布之后，其他小程序方可调用。小程序平台会托管插件代码，其他小程序调用时，上传的插件代码会随小程序一起下载运行。

相对于普通 js 文件或自定义组件，插件拥有更强的独立性，拥有独立的 API 接口、域名列表等，但同时会受到一些限制，如 [一些 API 无法调用或功能受限](api-limit)。还有个别特殊的接口，虽然插件不能直接调用，但可以使用 [插件功能页](functional-pages) 来间接实现。

同时，框架会对小程序和小程序使用的每个插件进行数据安全保护，保证它们之间不能窃取其他任何一方的数据（除非数据被主动传递给另一方）。

对于插件开发者，请阅读 [开发插件](development) 章节；对于插件使用者，请阅读 [使用插件](using) 章节。
