2016-09-07 4 views
8

В моем приложении Vue.js я хочу иметь некоторые глобальные функции. Например, функция callApi(), которую я могу вызывать каждый раз, когда мне нужен доступ к моим данным.Включить глобальные функции в Vue.js

Каков наилучший способ включить эти функции, чтобы я мог получить к нему доступ во всех моих компонентах?

  • Должен ли я создать файл functions.js и включить его в свой main.js?
  • Должен ли я создать Mixin и включить его в свой main.js?
  • Есть ли лучший вариант?
+0

Возможно, Vuex? http://vuex.vuejs.org/en/data-flow.html –

+0

Vuex нас главным образом для хранения данных, если я прав? Я не думаю, что это для создания глобальных функций? – Jordy

+0

Я думал, что вам «нужен доступ к вашим данным»; Vuex предоставил бы это. Сам Vuex может выполнять вызовы, которые извлекают данные. –

ответ

10

Ваш лучший выбор - это плагин, который позволит вам добавлять функции в глобальную систему vue.

[от 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 = ... 

} 

Тогда вы бы просто добавить

Vue.use(MyPlugin) 

в коде перед вызовом функции.

Vue.myGlobalMethod(parameters); 

или в случае

Vue.callApi(parameters); 
+0

Спасибо. В чем же разница между Mixins и плагинами (для добавления глобальных функций)? – Jordy

+0

@Jordy разница заключается в том, что mixin должен быть включен в ваш хеш mixin в вашем определении vm для каждого компонента, который требует этой функциональности. Плагин делает его доступным по всему миру во всех ваших компонентах без необходимости включения (поскольку он расширяет основной экземпляр Vue, каждый компонент, который вы создаете, уже включает эту функцию) –

+0

@ Jordy Tremendus имеет все права, Mixins - это ограниченная функциональность, которая добавляется к компонентам отдельно, это то, что я обычно использую, если большая часть моих компонентов не нуждается в этой функции. –

Смежные вопросы