外掛


目錄


外掛通常用來為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.js 官方提供的一些外掛(例如

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) {
    // 逻辑...
  }
}


##