Vue.js插件是向应用程序添加全局功能的一种强大而简单的方法。它们有多种用途,从提供跨应用的组件,到向应用程序添加路由和不可变数据存储等附加功能。
从概念上说,Vue插件非常简单。它实际上只是一个带有install方法的对象,它接收两个参数:全局的Vue对象和包含用户定义配置的对象。不过,像这样简单的插件系统仍然可以发挥相当大的作用。
你的第一个插件
作为对Vue插件的介绍,我们将编写一个基本插件,每当组件加载到DOM时,它就会写入控制台。
现在你的插件可以在一个Vue应用里使用了,只需要导入它然后调用Vue.use(MyPlugin)。
你可能会想,为什么我不能通过在main.js中调用Vue.mixin()来实现呢?原因是,由于我们在Vue中添加了不直接修改应用程序的全局功能,所以最好将它拆分成一个单独的可以随意添加或删除的模块。这也使得插件非常容易分发。
增加功能
安装app内使用的组件和指令
如果你希望将组件或指令打包成插件分发,你可以编写如下内容:
修改全局Vue对象
你可以在一个插件内部修改全局的Vue对象,你可以这样做:
修改Vue实例
不借助于注入机制想要把属性或者方法添加到组件实例,你可以修改Vue原型,如下所示:
这些属性和方法现在会增加到所有的组件和Vue实例中。
在Vue社区内部,一般约定插件修改Vue原型时为增加的属性名增加一个美元符号($)前缀。
增加组件生命周期钩子或者属性
如上面的“你的第一个插件”示例所示,你可以添加生命周期钩子函数,并通过使用Mixin对Vue组件进行其他修改。
自动化安装
对于不使用模块系统的用户来说,他通常会在Vue的script标签后引入你的插件,然后希望插件会自动安装,而不需要再调用Vue.use()方法。你可以在插件代码尾部追加如下代码实现这个功能:
发布你的插件
你完成插件开发之后,可能会想发布到社区,如果你不熟悉这个过程,这里有一些建议。
将源代码和正式的发布文件发布到NPM和GitHub。(请确保为你的代码选择了合适的许可证!)
向Vue的社区仓库Awesome-Vue发布一个pullrequest。很多人会来到这里查找插件。
Vuejs应用测试京东月销量好评率98%无理由退换京东配送官方店¥57.1购买