Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
inject('http', axios);
import Vue from 'vue';
import axios from './axios';
import wait from './wait';
export default function (app) {
let inject = (plugin) => {
Object.assign(app.store, plugin);
Vue.use({install(Vue) { Object.assign(Vue.prototype, plugin)}});
}
axios(app, inject);
wait(app, inject);
}
export default function ({store: {dispatch, getters}}, inject) {
const $wait = {
...
};
inject( { $wait } );
}this.$axios я не использую. В статье пример с axios был с целью показать конфигурирование библиотек внутри плагинов, а не Dependency Injection в корневой экземпляр Vue.Vue.prototype.$myMethod = function (methodOptions) {
// некоторая логика ...
}
Object.assign в функции install вместо простого присваивания не пробовал.Vue.use(...)install. И там сделать это присвоение. Очень удивился, что не заработало, очевидных косяков не обнаружилось, поэтому начал смотреть, как сделано у других. vue-wait и с Object.defineProperty из Nuxt заработали сразу. И они мало похожи на то, что описано в документации. Вероятно, не без причины.
Как организовать ваши зависимости во Vue-приложении