Вы можете сделать любое свойство / функцию доступной для каждого экземпляра (компонента) vue, используя Vue.prototype
.
Vue.prototype.getCountries = {
'AF': 'Afghanistan',
'AX': 'Åland Islands',
'AL': 'Albania',
'DZ': 'Algeria',
'AS': 'American Samoa'
};
Vue.component('test', {
template: `<div>{{ getCountries }}</div>`,
created() {
console.log('countries ->', this.getCountries);
}
})
new Vue({
el: '#app',
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.min.js"></script>
<div id="app">
<test />
</div>
Другой альтернативой будет определение глобального миксина, и он будет работать так же.
Vue.mixin({
data() {
return {
get getCountries () {
return {
'AF': 'Afghanistan',
'AX': 'Åland Islands',
'AL': 'Albania',
'DZ': 'Algeria',
'AS': 'American Samoa'
};
}
}
})
Персональные предпочтения
Я предпочитаю иметь его в файле .js (обратите внимание, что вы также можете импортировать миксины, чтобы использовать его только в определенных компонентах - Vue Mixins ) и импортировать его только в тех компонентах, которые будутиспользуется, чтобы не перегружать все компоненты значениями, которые не требуются.