Vue.js 2.0 插件

2022-01-28 15:32 更新

Vue.js 2.0 開發(fā)插件

插件通常會(huì)為Vue添加全局功能。插件的范圍沒有限制——一般有下面幾種:

  1. 添加全局方法或者屬性,如:vue-element
  2. 添加全局資源:指令/過濾器/過渡等,如:vue-touch
  3. 通過全局 mixin方法添加一些組件選項(xiàng),如:vuex
  4. 添加 Vue 實(shí)例方法,通過把它們添加到 Vue.prototype 上實(shí)現(xiàn)。
  5. 一個(gè)庫,提供自己的 API,同時(shí)提供上面提到的一個(gè)或多個(gè)功能,如:vue-router

Vue.js 的插件應(yīng)當(dāng)有一個(gè)公開方法 install 。這個(gè)方法的第一個(gè)參數(shù)是 Vue 構(gòu)造器 , 第二個(gè)參數(shù)是一個(gè)可選的選項(xiàng)對(duì)象:

MyPlugin.install = function (Vue, options) {
  // 1. 添加全局方法或?qū)傩?  Vue.myGlobalMethod = function () {
    // 邏輯...
  }
  // 2. 添加全局資源
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // 邏輯...
    }
    ...
  })
  // 3. 注入組件
  Vue.mixin({
    created: function () {
      // 邏輯...
    }
    ...
  })
  // 4. 添加實(shí)例方法
  Vue.prototype.$myMethod = function (options) {
    // 邏輯...
  }
}

使用插件

通過全局方法 Vue.use() 使用插件:

// 調(diào)用 `MyPlugin.install(Vue)`
Vue.use(MyPlugin)

也可以傳入一個(gè)選項(xiàng)對(duì)象:

Vue.use(MyPlugin, { someOption: true })

Vue.use 會(huì)自動(dòng)阻止注冊(cè)相同插件多次,屆時(shí)只會(huì)注冊(cè)一次該插件。

一些插件,如 vue-router 如果 Vue 是全局變量則自動(dòng)調(diào)用 Vue.use() 。不過在模塊環(huán)境中應(yīng)當(dāng)始終顯式調(diào)用 Vue.use() :

// 通過 Browserify 或 Webpack 使用 CommonJS 兼容模塊
var Vue = require('vue')
var VueRouter = require('vue-router')
// 不要忘了調(diào)用此方法
Vue.use(VueRouter)

awesome-vue 集合了來自社區(qū)貢獻(xiàn)的數(shù)以千計(jì)的插件和庫。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)