Vue.js 插件是為應(yīng)用添加全局功能的一種強(qiáng)大而且簡(jiǎn)單的方式。
插件通常會(huì)為 Vue 添加全局功能。插件的范圍沒(méi)有限制——通常是下面幾種:
添加全局方法或?qū)傩?,?vue-element
添加全局資源:指令/過(guò)濾器/過(guò)渡等,如 vue-touch
添加 Vue 實(shí)例方法,通過(guò)把它們添加到 Vue.prototype 上實(shí)現(xiàn)。
Vue.js 的插件應(yīng)當(dāng)有一個(gè)公開(kāi)方法 install
。這個(gè)方法的第一個(gè)參數(shù)是 Vue
構(gòu)造器,第二個(gè)參數(shù)是一個(gè)可選的選項(xiàng)對(duì)象:
MyPlugin.install = function (Vue, options) {
// 1. 添加全局方法或?qū)傩? Vue.myGlobalMethod = ...
// 2. 添加全局資源
Vue.directive('my-directive', {})
// 3. 添加實(shí)例方法
Vue.prototype.$myMethod = ...
}
通過(guò) Vue.use()
全局方法使用插件:
// 調(diào)用 `MyPlugin.install(Vue)`
Vue.use(MyPlugin)
也可以傳入一個(gè)選項(xiàng)對(duì)象:
Vue.use(MyPlugin, { someOption: true })
一些插件,如 vue-router
,如果 Vue
是全局變量則自動(dòng)調(diào)用 Vue.use()
。不過(guò)在模塊環(huán)境中應(yīng)當(dāng)始終顯式調(diào)用 Vue.use()
:
// 通過(guò) Browserify 或 Webpack 使用 CommonJS 兼容模塊
var Vue = require('vue')
var VueRouter = require('vue-router')
// 不要忘了調(diào)用此方法
Vue.use(VueRouter)
vue-router:Vue.js 官方路由。與 Vue.js 內(nèi)核深度整合,讓構(gòu)建單頁(yè)應(yīng)用易如反掌。
vue-resource:通過(guò) XMLHttpRequest 或 JSONP 發(fā)起請(qǐng)求并處理響應(yīng)。
vue-async-data:異步加載數(shù)據(jù)插件。
vue-validator:表單驗(yàn)證插件。
vue-devtools:Chrome 開(kāi)發(fā)者工具擴(kuò)展,用于調(diào)試 Vue.js 應(yīng)用。
vue-touch:使用 Hammer.js 添加觸摸手勢(shì)指令(已過(guò)時(shí))。
vue-element:使用 Vue.js 注冊(cè)自定義元素。
更多建議: