web-dev-qa-db-fra.com

Inclure des fonctions globales dans Vue.js

Dans mon application Vue.js, je veux avoir des fonctions globales. Par exemple une fonction callApi() que je peux appeler chaque fois que j'ai besoin d'accéder à mes données.

Quelle est la meilleure façon d'inclure ces fonctions pour que je puisse y accéder dans tous mes composants?

  • Dois-je créer un fichier functions.js et l'inclure dans mon main.js?
  • Dois-je créer un Mixin et l'inclure dans mon main.js?
  • Y a-t-il une meilleure option?
17
Jordy

Votre meilleur pari serait un plugin, qui vous permet d'ajouter des fonctionnalités au système global vue.

[à partir des vuejs Docs]

MyPlugin.install = function (Vue, options) {

// 1. add global method or property
Vue.myGlobalMethod = ...

// 2. add a global asset
Vue.directive('my-directive', {})

// 3. add an instance method
Vue.prototype.$myMethod = ...

}

Ensuite, vous ajouteriez simplement

Vue.use(MyPlugin)

dans votre code avant d'appeler votre fonction.

Vue.myGlobalMethod(parameters);

ou dans votre cas

Vue.callApi(parameters);
16
Justin MacArthur

Les mixins peuvent également être enregistrés dans le monde entier. https://vuejs.org/v2/guide/mixins.html#Global-Mixin

4
Victor Bastos