外掛
目錄
外掛通常用來為Vue 新增全域功能。外掛程式的功能範圍沒有嚴格的限制-一般有以下幾種:
1. 新增全域方法或屬性。如: vue-custom-element
2. 新增全域資源:指令/過濾器/過渡等。如 vue-touch
3. 透過全域混入來新增一些元件選項。如 vue-router
4. 新增 Vue 實例方法,透過將它們加入 Vue.prototype
上實現。
5. 一個函式庫,提供自己的 API,同時提供上述的一個或多個功能。如 vue-router
#使用外掛程式
##透過全域方法
Vue.use() 使用外掛程式。它需要在你呼叫
new Vue() 啟動應用程式之前完成:
// 调用 `MyPlugin.install(Vue)` Vue.use(MyPlugin) new Vue({ // ...组件选项 })也可以傳入一個可選的選項物件:
Vue.use(MyPlugin, { someOption: true })
Vue. use 會自動阻止多次註冊相同插件,屆時即使多次呼叫也只會註冊一次該插件。
vue-router) 在偵測到Vue 是可存取的全域變數時會自動呼叫
Vue.use()。然而在像CommonJS 這樣的模組環境中,你應該始終明確地調用
Vue.use():
// 用 Browserify 或 webpack 提供的 CommonJS 模块环境时 var Vue = require('vue') var VueRouter = require('vue-router') // 不要忘了调用此方法 Vue.use(VueRouter)
awesome-vue 集合了大量由社區貢獻的插件和函式庫。
開發外掛
#Vue.js 的外掛程式應該要露出一個
install 方法。這個方法的第一個參數是
Vue 建構器,第二個參數是一個可選的選項物件:
MyPlugin.install = function (Vue, options) { // 1. 添加全局方法或属性 Vue.myGlobalMethod = function () { // 逻辑... } // 2. 添加全局资源 Vue.directive('my-directive', { bind (el, binding, vnode, oldVnode) { // 逻辑... } ... }) // 3. 注入组件选项 Vue.mixin({ created: function () { // 逻辑... } ... }) // 4. 添加实例方法 Vue.prototype.$myMethod = function (methodOptions) { // 逻辑... } }