Как задать глобальные методы в Vue?

Подскажите как задать глобальные методы в vue.js
Так что бы я потом мог их использовать в любом модуле
Как для вывода информации
<p>{{ globalMetodName(param1, param2) }}<p>
Так и в методах модуля
modeleMetod: function(){
    this.globalMetodName(param1, param2);
}
  • Вопрос задан
  • 5106 просмотров
Решения вопроса 1
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Также можно использовать механизм примесей: https://ru.vuejs.org/v2/guide/mixins.html

Создаете объект примеси:
// определяем объект примеси
var myMixin = {
  created: function () {
    this.hello()
  },
  methods: {
    hello: function () {
      console.log('привет из примеси!')
    }
  }
}


И далее его можно инжектить в любой компонент или глобально:
Vue.mixin(myMixin)
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@wostex
Сделать плагин. Пример: https://jsfiddle.net/wostex/63t082p2/45/

<div id="app">
  <p>{{ helloText }}</p>
</div>

const mylib = {
    hello : (text1, text2) => { 
    	return `Hello! ${text1} ${text2}`
    },
    install: function(Vue){
      Object.defineProperty(Vue.prototype, 'mylib', {
        get () { return mylib }
      })
    }
};

Vue.use(mylib);

new Vue({
    el: '#app',
    data: {
    	helloText: mylib.hello('one', 'two')
    }
});


Можно вызывать методы в любом компоненте как `this.mylib.hello(...)`
Ответ написан
AntonBoltnev
@AntonBoltnev
Со-основатель сервиса поиска продавцов Bicco
А чем плохи mapActions (в нижней части страницы) и mapGetters (в нижней части страницы) ? Если конечно, вы используете Vuex в проекте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы