Приветствую.
Я вот думаю как покошерней оформляется сейчас вспомогательный код в модуле.
Видел что просто функциями делают, ну и я то же пока так:
import axios from 'axios'
let apiKey = 'овововоов';
let baseUrl = 'https://api.someurl.com';
export default {
async fetchMovies(movieType, page = null, cb, errorCb = null, ) {
await axios.get(createUrl(movieType, page))
.then((response) => {
cb(response.data);
})
.catch(function (error) {
if (errorCb) {
errorCb(error);
}
});
}
}
function createUrl(movieType, page = null) {
let url = baseUrl . movieType + '?api_key=' + apiKey;
return url;
}
Функция эта снаружи, я так понимаю, видна не будет. В том числе когда и сборщиком все это собирается, ведь да?
Но вот насколько этот результат ООП...
Вот даже просто когда пишешь модуль для vuex у vue
const state = () => ({
omegas: []
})
// getters
const getters = {
omegas(state) {
return state.omegas;
},
lastOmega(state) {
return state.omegas.length ? state.omegas[state.omegas.length - 1] : null;
}
}
// actions
const actions = {
setOmegas ({ commit }, payload) {
commit('setOmegas', payload)
}
}
//...
export default {
namespaced: true,
state,
getters,
actions,
mutations
}
, где всю дополнительную работу делать, тот же код, который общий для разных экшенов?
Может это как то по-хипстеровей сейчас делается?
Например, вот как я этот модуль с api подключаю в других модулях, так и внутри него подключать модуль, который экспортирует объект с методами, требуемыми текущему.