Clique aqui para a documentação da v3.x.

Você está navegando a documentação da v2.x e anterior. Para a v3.x, clique aqui.

Plugins

Plugins geralmente acrescentam funcionalidade ao Vue em nível global. Não há um escopo estrito definido para um plugin - existem vários tipos que você pode escrever:

  1. Adicionar alguns métodos e propriedades globais. Ex.: vue-custom-element

  2. Adicionar um ou mais recursos globais: diretivas/filtros/transições etc. Ex.: vue-touch

  3. Adicionar algumas opções de componente via mixin global. Ex.: vue-router

  4. Adicionar métodos para instâncias Vue incluindo-os em Vue.prototype.

  5. Uma biblioteca com uma API própria, que ao mesmo tempo injeta alguma combinação dos anteriores. Ex.: vue-router

Usando um Plugin

Use plugins chamando o método global Vue.use(). Isto precisa ser feito antes que você inicie sua aplicação através de new Vue():

// chama `MyPlugin.install(Vue)` Vue.use(MyPlugin) new Vue({ //... opções })

Você pode, opcionalmente, passar algumas opções ao plugin:

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

Vue.use automaticamente lhe previne de usar o mesmo plugin mais de uma vez, portanto, chamá-lo múltiplas vezes no mesmo plugin irá instalá-lo apenas uma vez.

Alguns plugins oferecidos pela equipe do Vue de forma oficial, como o vue-router, automaticamente chamam Vue.use() se Vue estiver disponível como uma variável global. Entretanto, em um ambiente de módulos como CommonJS, você sempre precisará chamar Vue.use() explicitamente:

// Quando usar CommonJS via Browserify ou Webpack var Vue = require('vue') var VueRouter = require('vue-router') // Não esqueça de chamar isto Vue.use(VueRouter)

Dê uma olhada na lista awesome-vue para uma enorme coleção de plugins e bibliotecas criadas a partir de contribuições da comunidade.

Escrevendo um Plugin

Um plugin do Vue deve expor um método install. Esse método será chamado tendo o construtor Vue como primeiro argumento, junto com possíveis options:

MyPlugin.install = function (Vue, options) { // 1. adicionar método ou propriedade global Vue.myGlobalMethod = function () { // alguma lógica ... } // 2. adicionar um recurso global Vue.directive('my-directive', { bind (el, binding, vnode, oldVnode) { // alguma lógica ... } ... }) // 3. adicionar algumas opções de componente Vue.mixin({ created: function () { // alguma lógica ... } ... }) // 4. adicionar um método de instância Vue.prototype.$myMethod = function (methodOptions) { // alguma lógica ... } }