编写插件的时候可以有两种方式。
-
一种是将这个插件的逻辑封装成一个对象,最后将在 install 编写业务代码暴露给 Vue 对象。这样做的好处是可以添加任意参数在这 个对象上方便将 install 函数封装得更加精简,可拓展性也比较高。
-
还有一种则是将所有逻辑都编写成一个函数暴露给 Vue。 其实两种方法原理都一样,无非第二种就是将这个插件直接当成 install 函数来处理。 个人觉得第一种方式比较合理。
插件
插件通常用来为 Vue 添加全局功能。插件的功能范围没有严格的限制——一般有下面几种:
-
添加全局方法或者 属性(property)。
-
添加全局资源:指令/过滤器/过渡等。
-
添加全局组件
-
添加 Vue 实例方法,通过把它们添加到
Vue.prototype
上实现。 -
一个库,提供自己的 API,同时提供上面提到的一个或多个功能。
使用插件
通过全局方法 Vue.use()
使用插件。它需要在你调用 new Vue()
启动应用之前完成:
Vue.use()
括号内的参数可以是对象,也可以是一个函数
-
Vue.use
会自动阻止多次注册相同插件,届时即使多次调用也只会注册一次该插件。
-
Vue.js 官方提供的一些插件 (例如
vue-router
) 在检测到Vue
是可访问的全局变量时会自动调用Vue.use()
。然而在像 CommonJS 这样的模块环境中,你应该始终显式地调用Vue.use()