Jeśli coś nie jest helperem można z tego zrobić helpera! :D Temu co sam bym zrobił bliski jest ostatni przykład. Zamknąć wszystko dotyczące axiosa w jednym pliku i nazwać go ajax, fetch czy zaproponowany sender. Jednak na początek musisz zrozumieć ze moduły są cachowane. Gdy ich kod się wykona zapamiętywane są tylko wartości zmiennych które exportujesz. Zrób sobie dla testów przykładowy moduł.
export const sum = 2 + 2;
console.log('2+2 = ', sum);
export const getSum = () => sum;
spróbuj teraz zaimportować moduł i postarać się aby console.log wykonał się drugi raz. Podpowiem ze się nie da ;) Moduły JS są wykonywane w całości i JS zapamiętuje tylko wartości które eksportuje moduł.
Wracając do twojego przykładu na Twoim miejscu zrezygnował bym z nazewnictwa axios poza plikiem tak aby łatwo podmienić bibliotekę jeśli zajdzie taka potrzeba ;)
Zrobił bym coś w stylu :
import axios from 'axios;
const axiosInstance = axios.create({
baseURL: 'http://somesite.com',
/* ... */
});
export const get = (resource, data) => axiosInstance.get(....);
Zaznaczam ze nie znam axiosa więc nie wiem czy posiada on metode get. Ale metodę get eksportował bym z pliku który miałby zarządzać ajaxem. Mi osobiście bardzo się podobają nazwy funkcji wskazujące na metodę http (GET, POST, PUT, PATCH, DELETE).
psssyt kevin czy ty nie siedzisz obok mnie w pracy? Mam takie dziwne przeczucie :D